1/*
2 * L4_MABX.c
3 *
4 * Code generation for model "L4_MABX".
5 *
6 * Model version : 1.846
7 * Simulink Coder version : 8.14 (R2018a) 06-Feb-2018
8 * C source code generated on : Wed Nov 6 11:22:45 2019
9 *
10 * Target selection: rti1401.tlc
11 * Note: GRT includes extra infrastructure and instrumentation for prototyping
12 * Embedded hardware selection: Custom Processor->Custom
13 * Code generation objectives: Unspecified
14 * Validation result: Not run
15 */
16
17#include "L4_MABX_trc_ptr.h"
18#include "L4_MABX.h"
19#include "L4_MABX_private.h"
20
21/* Named constants for Chart: '<S79>/Chart' */
22#define L4_MABX_IN_Init ((uint8_T)1U)
23#define L4_MABX_IN_NO_ACTIVE_CHILD ((uint8_T)0U)
24#define L4_MABX_IN_OperatorDisabled ((uint8_T)2U)
25#define L4_MABX_IN_OperatorEnabled ((uint8_T)3U)
26
27/* Named constants for Chart: '<S205>/Relay_control_state_machine' */
28#define L4_MABX_IN_IGN_RELAY_LATCH ((uint8_T)1U)
29#define L4_MABX_IN_IGN_RELAY_UNLATCH ((uint8_T)1U)
30#define L4_MABX_IN_INITIAL ((uint8_T)1U)
31#define L4_MABX_IN_INV_RELAY_LATCH ((uint8_T)2U)
32#define L4_MABX_IN_INV_RELAY_UNLATCH ((uint8_T)2U)
33#define L4_MABX_IN_MABX_RELAY_LATCH ((uint8_T)3U)
34#define L4_MABX_IN_MABX_RELAY_UNLATCH ((uint8_T)3U)
35#define L4_MABX_IN_POWER_DOWN_ROUTINE ((uint8_T)2U)
36#define L4_MABX_IN_POWER_UP_ROUTINE ((uint8_T)3U)
37#define L4_MABX_IN_SENSOR_RELAY_LATCH ((uint8_T)4U)
38#define L4_MABX_IN_SENSOR_RELAY_UNLATCH ((uint8_T)4U)
39#define L4_MABX_IN_WAIT ((uint8_T)5U)
40
41/* Named constants for Chart: '<S276>/Chart' */
42#define L4_MABX_IN_OneLane ((uint8_T)1U)
43#define L4_MABX_IN_OneLane1 ((uint8_T)2U)
44#define L4_MABX_IN_TwoLanes ((uint8_T)3U)
45#define L4_MABX_IN_TwoLanes1 ((uint8_T)4U)
46#define L4_MABX_IN_ZeroLanes ((uint8_T)5U)
47#define L4_MABX_IN_ZeroLanes1 ((uint8_T)6U)
48#define L4_MABX_IN_init_f ((uint8_T)7U)
49
50/* Named constants for Chart: '<S729>/Health State Machine PWM Sensor 1' */
51#define L4_MABX_IN_ERROR ((uint8_T)1U)
52#define L4_MABX_IN_FAILURE_DETECTED ((uint8_T)1U)
53#define L4_MABX_IN_NO_FAILURE ((uint8_T)2U)
54#define L4_MABX_IN_PENDING ((uint8_T)2U)
55
56/* Named constants for Chart: '<S811>/Chart' */
57#define L4_MABX_IN_DiagPassed ((uint8_T)1U)
58#define L4_MABX_IN_SwitchOff ((uint8_T)2U)
59#define L4_MABX_IN_SwitchOn ((uint8_T)3U)
60#define L4_MABX_IN_init_j ((uint8_T)4U)
61
62/* Named constants for Chart: '<S825>/Chart' */
63#define L4_MABX_IN_CheckPacketCount ((uint8_T)1U)
64#define L4_MABX_IN_Init_n ((uint8_T)2U)
65#define L4_MABX_IN_InterframeDelay ((uint8_T)3U)
66#define L4_MABX_IN_InterframeDelay1 ((uint8_T)4U)
67#define L4_MABX_IN_SendTPCM ((uint8_T)5U)
68#define L4_MABX_IN_SendTPDT ((uint8_T)6U)
69#define L4_MABX_IN_StartMsg ((uint8_T)7U)
70#define L4_MABX_IN_WaitForNextPeriod ((uint8_T)8U)
71
72/* Exported block signals */
73real_T GLB_Absolute_Timestamp; /* '<S403>/Rate Transition' */
74real_T ReAX_ActualHandwheelPos; /* '<S429>/Switch' */
75real_T EthernetLinkStatus; /* '<S386>/dsa_tcpip_setup' */
76real_T CurrentAzimuth_rad; /* '<S384>/Switch' */
77real_T TargetAzimuth_rad; /* '<S384>/Switch1' */
78real_T TargetVelocity_kph; /* '<S384>/Switch3' */
79real_T Curvature; /* '<S384>/Switch4' */
80real_T CurrentVelocity_kph; /* '<S384>/Switch2' */
81real_T CrosstrackError; /* '<S384>/Switch5' */
82real_T GPS_X; /* '<S384>/Switch6' */
83real_T GPS_Y; /* '<S384>/Switch7' */
84real_T GPS_Time; /* '<S384>/Switch8' */
85real_T ReAX_EchoedSteerWheelPos; /* '<S429>/Switch' */
86real_T SteerWheelAngle; /* '<S631>/S-Function1' */
87real_T YawRate; /* '<S631>/S-Function1' */
88real_T SPN1810_LongitudinalAcceleration;/* '<S631>/S-Function1' */
89real_T WheelBasedVehicleSpeed; /* '<S492>/S-Function1' */
90real_T BrakeSwitch; /* '<S492>/S-Function1' */
91real_T Lateral_Control_Output; /* '<S274>/Sum1' */
92real_T Lateral_Control_Rate_Limiter_Output;/* '<S299>/If_Then_Else' */
93real_T SteerCommandDeg; /* '<S80>/sign1' */
94real_T DesiredSteeringAngle; /* '<S80>/sign2' */
95uint32_T DIAG_CAN1_Count_Stuff_Errors; /* '<S28>/S-Function1' */
96uint32_T DIAG_CAN1_Count_Format_Errors;/* '<S28>/S-Function1' */
97uint32_T DIAG_CAN1_Count_Ack_Errors; /* '<S28>/S-Function1' */
98uint32_T DIAG_CAN1_Count_Bit0_Errors; /* '<S28>/S-Function1' */
99uint32_T DIAG_CAN1_Count_Bit1_Errors; /* '<S28>/S-Function1' */
100uint32_T DIAG_CAN1_Count_CRC_Errors; /* '<S28>/S-Function1' */
101uint32_T DIAG_CAN1_Count_RX_Lost; /* '<S28>/S-Function1' */
102uint32_T DIAG_CAN1_Count_RX_OK; /* '<S28>/S-Function1' */
103uint32_T DIAG_CAN1_Count_TX_OK; /* '<S28>/S-Function1' */
104uint32_T DIAG_CAN5_Count_Stuff_Errors; /* '<S20>/S-Function1' */
105uint32_T DIAG_CAN5_Count_Format_Errors;/* '<S20>/S-Function1' */
106uint32_T DIAG_CAN5_Count_Ack_Errors; /* '<S20>/S-Function1' */
107uint32_T DIAG_CAN5_Count_Bit0_Errors; /* '<S20>/S-Function1' */
108uint32_T DIAG_CAN5_Count_Bit1_Errors; /* '<S20>/S-Function1' */
109uint32_T DIAG_CAN5_Count_CRC_Errors; /* '<S20>/S-Function1' */
110uint32_T DIAG_CAN5_Count_RX_Lost; /* '<S20>/S-Function1' */
111uint32_T DIAG_CAN5_Count_RX_OK; /* '<S20>/S-Function1' */
112uint32_T DIAG_CAN5_Count_TX_OK; /* '<S20>/S-Function1' */
113uint32_T DIAG_CAN6_Count_Stuff_Errors; /* '<S21>/S-Function1' */
114uint32_T DIAG_CAN6_Count_Format_Errors;/* '<S21>/S-Function1' */
115uint32_T DIAG_CAN6_Count_Ack_Errors; /* '<S21>/S-Function1' */
116uint32_T DIAG_CAN6_Count_Bit0_Errors; /* '<S21>/S-Function1' */
117uint32_T DIAG_CAN6_Count_Bit1_Errors; /* '<S21>/S-Function1' */
118uint32_T DIAG_CAN6_Count_CRC_Errors; /* '<S21>/S-Function1' */
119uint32_T DIAG_CAN6_Count_RX_Lost; /* '<S21>/S-Function1' */
120uint32_T DIAG_CAN6_Count_RX_OK; /* '<S21>/S-Function1' */
121uint32_T DIAG_CAN6_Count_TX_OK; /* '<S21>/S-Function1' */
122uint32_T DIAG_CAN3_Count_Stuff_Errors; /* '<S18>/S-Function1' */
123uint32_T DIAG_CAN3_Count_Format_Errors;/* '<S18>/S-Function1' */
124uint32_T DIAG_CAN3_Count_Ack_Errors; /* '<S18>/S-Function1' */
125uint32_T DIAG_CAN3_Count_Bit0_Errors; /* '<S18>/S-Function1' */
126uint32_T DIAG_CAN3_Count_Bit1_Errors; /* '<S18>/S-Function1' */
127uint32_T DIAG_CAN3_Count_CRC_Errors; /* '<S18>/S-Function1' */
128uint32_T DIAG_CAN3_Count_RX_Lost; /* '<S18>/S-Function1' */
129uint32_T DIAG_CAN3_Count_RX_OK; /* '<S18>/S-Function1' */
130uint32_T DIAG_CAN3_Count_TX_OK; /* '<S18>/S-Function1' */
131uint32_T DIAG_CAN4_Count_Stuff_Errors; /* '<S19>/S-Function1' */
132uint32_T DIAG_CAN4_Count_Format_Errors;/* '<S19>/S-Function1' */
133uint32_T DIAG_CAN4_Count_Ack_Errors; /* '<S19>/S-Function1' */
134uint32_T DIAG_CAN4_Count_Bit0_Errors; /* '<S19>/S-Function1' */
135uint32_T DIAG_CAN4_Count_Bit1_Errors; /* '<S19>/S-Function1' */
136uint32_T DIAG_CAN4_Count_CRC_Errors; /* '<S19>/S-Function1' */
137uint32_T DIAG_CAN4_Count_RX_Lost; /* '<S19>/S-Function1' */
138uint32_T DIAG_CAN4_Count_RX_OK; /* '<S19>/S-Function1' */
139uint32_T DIAG_CAN4_Count_TX_OK; /* '<S19>/S-Function1' */
140uint32_T DIAG_CAN2_Count_Stuff_Errors; /* '<S17>/S-Function1' */
141uint32_T DIAG_CAN2_Count_Format_Errors;/* '<S17>/S-Function1' */
142uint32_T DIAG_CAN2_Count_Ack_Errors; /* '<S17>/S-Function1' */
143uint32_T DIAG_CAN2_Count_Bit0_Errors; /* '<S17>/S-Function1' */
144uint32_T DIAG_CAN2_Count_Bit1_Errors; /* '<S17>/S-Function1' */
145uint32_T DIAG_CAN2_Count_CRC_Errors; /* '<S17>/S-Function1' */
146uint32_T DIAG_CAN2_Count_RX_Lost; /* '<S17>/S-Function1' */
147uint32_T DIAG_CAN2_Count_RX_OK; /* '<S17>/S-Function1' */
148uint32_T DIAG_CAN2_Count_TX_OK; /* '<S17>/S-Function1' */
149real32_T REAX_Handwheel_Torque; /* '<S405>/Data Type Conversion3' */
150real32_T REAX_Handwheel_Velocity; /* '<S405>/Data Type Conversion4' */
151real32_T REAX_Pull_Compensation; /* '<S405>/Data Type Conversion5' */
152ENUM_CAN_STATUS_DIAG_T DIAG_CAN1_Status;/* '<S1>/Data Type Conversion' */
153ENUM_CAN_STATUS_DIAG_T DIAG_CAN5_Status;/* '<S1>/Data Type Conversion5' */
154ENUM_CAN_STATUS_DIAG_T DIAG_CAN6_Status;/* '<S1>/Data Type Conversion4' */
155ENUM_CAN_STATUS_DIAG_T DIAG_CAN3_Status;/* '<S1>/Data Type Conversion3' */
156ENUM_CAN_STATUS_DIAG_T DIAG_CAN4_Status;/* '<S1>/Data Type Conversion2' */
157ENUM_CAN_STATUS_DIAG_T DIAG_CAN2_Status;/* '<S1>/Data Type Conversion1' */
158uint8_T SupervisorMode; /* '<S384>/Switch9' */
159uint8_T REAX_Current_Mode; /* '<S405>/Data Type Conversion' */
160uint8_T REAX_Req_Mode; /* '<S405>/Data Type Conversion1' */
161uint8_T REAX_Status; /* '<S405>/Data Type Conversion2' */
162uint8_T GLB_SWVERSION_CPV_[100]; /* '<S1057>/Constant' */
163uint8_T MABX_Mode; /* '<S76>/Switch' */
164boolean_T EStop; /* '<S402>/Logical Operator1' */
165boolean_T EnableSw; /* '<S727>/Switch' */
166boolean_T RTMapsOk; /* '<S384>/AND' */
167boolean_T EngagePB; /* '<S402>/Logical Operator2' */
168boolean_T AutonomousEnabled; /* '<S76>/Autonomous Mode Switch1' */
169boolean_T AutonomousOutputEnabled; /* '<S76>/Autonomous Mode Switch' */
170boolean_T RateLimiterActive; /* '<S306>/Compare' */
171real_T Pedal_pwm_position; /* '<S731>/Switch' */
172
173/* Exported block parameters */
174real_T APTC_PEDAL_LOW_IDLE_SW_THR_APV = 3.0;/* Variable: APTC_PEDAL_LOW_IDLE_SW_THR_APV
175 * Referenced by: '<S75>/Constant'
176 */
177real_T APTC_TRQ_PED_INV_MAP_PED_POS_MPV[1328] = { 0.0, 0.3125, 0.859375, 1.15625,
178 1.59375, 1.8125, 1.921875, 2.375, 3.8125, 4.3125, 4.84375, 4.96875, 5.71875,
179 6.28125, 6.5625, 6.890625, 7.0, 7.8606557377049, 9.1229508196721,
180 10.327868852459, 11.532786885246, 14.0, 15.25748502994, 15.425149700599,
181 15.718562874251, 16.808383233533, 17.730538922156, 18.023952095808,
182 18.275449101796, 18.904191616766, 19.449101796407, 19.658682634731,
183 19.74251497006, 19.826347305389, 20.287425149701, 21.0, 21.516393442623,
184 22.290983606557, 23.409836065574, 24.758196721311, 24.959016393443,
185 25.217213114754, 26.22131147541, 26.995901639344, 27.311475409836,
186 27.454918032787, 27.512295081967, 27.684426229508, 28.0, 32.101910828025,
187 32.235668789809, 34.687898089172, 35.0, 36.734104046243, 38.815028901734,
188 42.28323699422, 42.514450867052, 44.364161849711, 51.878612716763, 55.0,
189 72.260273972603, 79.041095890411, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
190 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
191 100.0, 100.0, 100.0, 100.0, 0.0, 0.33333333333333, 0.91666666666667,
192 1.2333333333333, 1.7, 1.9333333333333, 2.05, 2.5333333333333, 4.0666666666667,
193 4.6, 5.1666666666667, 5.3, 6.1, 6.7, 7.0, 8.3738317757009, 8.8317757009346,
194 9.8130841121495, 11.252336448598, 12.626168224299, 14.0, 15.559585492228,
195 16.647668393782, 16.79274611399, 17.046632124352, 17.989637305699,
196 18.787564766839, 19.041450777202, 19.259067357513, 19.80310880829,
197 20.274611398964, 20.455958549223, 20.528497409326, 20.60103626943, 21.0,
198 21.476, 21.98, 22.736, 23.828, 25.144, 25.34, 25.592, 26.572, 27.328, 27.636,
199 27.776, 27.832, 28.0, 28.478260869565, 32.478260869565, 32.608695652174, 35.0,
200 35.777777777778, 37.444444444444, 39.444444444444, 42.777777777778, 43.0,
201 44.777777777778, 52.0, 55.0, 61.237623762376, 63.688118811881, 71.262376237624,
202 75.160891089109, 78.613861386139, 96.769801980198, 97.660891089109,
203 98.329207920792, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
204 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 0.57377049180328,
205 1.577868852459, 2.1229508196721, 2.9262295081967, 3.327868852459,
206 3.5286885245902, 4.3606557377049, 7.0, 7.8549618320611, 8.763358778626,
207 8.9770992366412, 10.259541984733, 11.221374045802, 11.702290076336,
208 12.263358778626, 12.450381679389, 12.851145038168, 13.43893129771, 14.0,
209 14.757731958763, 16.309278350515, 17.39175257732, 17.536082474227,
210 17.788659793814, 18.726804123711, 19.520618556701, 19.773195876289,
211 19.989690721649, 20.530927835052, 21.0, 21.132575757576, 21.185606060606,
212 21.238636363636, 21.530303030303, 21.981060606061, 22.458333333333,
213 23.174242424242, 24.208333333333, 25.454545454545, 25.640151515152,
214 25.878787878788, 26.806818181818, 27.522727272727, 27.814393939394,
215 27.94696969697, 28.0, 28.202898550725, 28.574879227053, 31.685990338164,
216 31.787439613527, 33.647342995169, 33.884057971014, 34.391304347826, 35.0,
217 36.704545454545, 36.818181818182, 37.727272727273, 41.420454545455,
218 42.954545454545, 46.136363636364, 47.386363636364, 51.25, 53.238636363636,
219 55.0, 64.249684741488, 64.703656998739, 65.044136191677, 65.895334174023,
220 75.769230769231, 79.457755359395, 82.919293820933, 84.451450189155,
221 93.417402269861, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
222 0.0, 0.92105263157895, 2.5328947368421, 3.4078947368421, 4.6973684210526,
223 5.3421052631579, 5.6644736842105, 7.0, 8.9339339339339, 9.6066066066066,
224 10.321321321321, 10.489489489489, 11.498498498498, 12.255255255255,
225 12.633633633634, 13.075075075075, 13.222222222222, 13.537537537538, 14.0,
226 14.65625, 15.3125, 16.65625, 17.59375, 17.71875, 17.9375, 18.75, 19.4375,
227 19.65625, 19.84375, 20.3125, 20.71875, 20.875, 20.9375, 21.0, 21.310483870968,
228 21.790322580645, 22.298387096774, 23.060483870968, 24.161290322581,
229 25.487903225806, 25.685483870968, 25.939516129032, 26.927419354839,
230 27.689516129032, 28.0, 28.143442622951, 28.200819672131, 28.372950819672,
231 28.688524590164, 31.327868852459, 31.41393442623, 32.991803278689,
232 33.19262295082, 33.622950819672, 34.139344262295, 35.0, 35.082474226804,
233 35.742268041237, 38.422680412371, 39.536082474227, 41.845360824742,
234 42.752577319588, 45.556701030928, 47.0, 48.278350515464, 55.0, 55.39603960396,
235 55.693069306931, 56.435643564356, 65.049504950495, 68.267326732673,
236 71.287128712871, 72.623762376238, 80.445544554455, 86.188118811881,
237 97.326732673267, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0,
238 1.2068965517241, 3.3189655172414, 4.4655172413793, 6.1551724137931, 7.0,
239 7.1412103746398, 7.7262247838617, 9.5821325648415, 10.227665706052,
240 10.913544668588, 11.07492795389, 12.043227665706, 12.769452449568,
241 13.132564841499, 13.556195965418, 13.697406340058, 14.0, 14.599221789883,
242 15.171206225681, 15.743190661479, 16.91439688716, 17.731517509728,
243 17.84046692607, 18.031128404669, 18.739299610895, 19.338521400778,
244 19.529182879377, 19.692607003891, 20.101167315175, 20.455252918288,
245 20.591439688716, 20.645914396887, 20.700389105058, 21.0, 21.526548672566,
246 22.08407079646, 22.920353982301, 24.128318584071, 25.58407079646,
247 25.800884955752, 26.079646017699, 27.163716814159, 28.0, 28.282051282051,
248 28.410256410256, 28.461538461538, 28.615384615385, 28.897435897436,
249 31.25641025641, 31.333333333333, 32.74358974359, 32.923076923077,
250 33.307692307692, 33.769230769231, 34.538461538462, 34.589743589744, 35.0,
251 36.768707482993, 37.503401360544, 39.027210884354, 39.625850340136,
252 41.47619047619, 42.428571428571, 43.272108843537, 47.707482993197,
253 47.925170068027, 48.08843537415, 48.496598639456, 53.231292517007, 55.0,
254 57.99672489083, 59.323144104803, 67.085152838428, 72.78384279476,
255 83.837336244541, 86.490174672489, 91.550218340611, 99.312227074236, 100.0,
256 100.0, 100.0, 100.0, 0.0, 1.8918918918919, 5.2027027027027, 7.0,
257 7.5340599455041, 7.8010899182561, 7.9346049046322, 8.4877384196185,
258 10.242506811989, 10.852861035422, 11.50136239782, 11.653950953678,
259 12.569482288828, 13.256130790191, 13.599455040872, 14.0, 14.185606060606,
260 14.583333333333, 15.166666666667, 15.723484848485, 16.280303030303,
261 17.420454545455, 18.215909090909, 18.32196969697, 18.507575757576,
262 19.19696969697, 19.780303030303, 19.965909090909, 20.125, 20.522727272727,
263 20.867424242424, 21.0, 21.065420560748, 21.130841121495, 21.490654205607,
264 22.046728971963, 22.635514018692, 23.518691588785, 24.794392523364,
265 26.331775700935, 26.560747663551, 26.855140186916, 28.0, 28.665492957746,
266 28.93661971831, 29.05985915493, 29.109154929577, 29.257042253521,
267 29.528169014085, 31.795774647887, 31.869718309859, 33.225352112676,
268 33.397887323944, 33.767605633803, 34.211267605634, 34.950704225352, 35.0,
269 35.381406436234, 36.930870083433, 37.574493444577, 38.909415971395,
270 39.433849821216, 41.054827175209, 41.88915375447, 42.628128724672,
271 46.513706793802, 46.704410011919, 46.847437425507, 47.205005959476,
272 51.352800953516, 52.902264600715, 54.356376638856, 55.0, 62.917594654788,
273 68.730512249443, 80.005567928731, 82.711581291759, 87.873051224944,
274 95.790645879733, 96.492204899777, 100.0, 100.0, 100.0, 0.0, 7.0,
275 7.8448275862069, 8.3034482758621, 8.9793103448276, 9.3172413793103,
276 9.4862068965517, 10.186206896552, 12.406896551724, 13.179310344828, 14.0,
277 14.157303370787, 15.101123595506, 15.808988764045, 16.162921348315,
278 16.575842696629, 16.713483146067, 17.008426966292, 17.441011235955,
279 17.85393258427, 18.266853932584, 19.112359550562, 19.702247191011,
280 19.780898876404, 19.918539325843, 20.429775280899, 20.862359550562, 21.0,
281 21.192660550459, 21.674311926606, 22.091743119266, 22.252293577982,
282 22.316513761468, 22.380733944954, 22.733944954128, 23.279816513761,
283 23.857798165138, 24.724770642202, 25.977064220183, 27.48623853211,
284 27.711009174312, 28.0, 28.910780669145, 29.613382899628, 29.899628252788,
285 30.029739776952, 30.081784386617, 30.237918215613, 30.524163568773,
286 32.918215613383, 32.996282527881, 34.42750929368, 34.609665427509, 35.0,
287 35.417633410673, 36.113689095128, 36.160092807425, 36.5313225058,
288 38.039443155452, 38.665893271462, 39.965197215777, 40.475638051044,
289 42.053364269142, 42.865429234339, 43.584686774942, 47.366589327146,
290 47.552204176334, 47.691415313225, 48.039443155452, 52.07656612529,
291 53.584686774942, 55.0, 56.296691568837, 63.884738527215, 69.455709711846,
292 80.261472785486, 82.854855923159, 87.801494130203, 95.389541088581,
293 96.061899679829, 99.423692636073, 100.0, 100.0, 0.0, 7.0, 9.378640776699,
294 10.669902912621, 12.572815533981, 13.52427184466, 14.0, 14.394941634241,
295 15.647859922179, 16.083657587549, 16.546692607004, 16.655642023346,
296 17.309338521401, 17.799610894942, 18.044747081712, 18.330739299611,
297 18.426070038911, 18.630350194553, 18.929961089494, 19.215953307393,
298 19.501945525292, 20.087548638132, 20.496108949416, 20.550583657588,
299 20.645914396887, 21.0, 21.836956521739, 22.103260869565, 22.33152173913,
300 22.902173913043, 23.396739130435, 23.586956521739, 23.663043478261,
301 23.739130434783, 24.157608695652, 24.804347826087, 25.489130434783,
302 26.516304347826, 28.0, 29.305555555556, 29.5, 29.75, 30.722222222222,
303 31.472222222222, 31.777777777778, 31.916666666667, 31.972222222222,
304 32.138888888889, 32.444444444444, 35.0, 35.073529411765, 36.421568627451,
305 36.593137254902, 36.960784313725, 37.401960784314, 38.137254901961,
306 38.186274509804, 38.578431372549, 40.171568627451, 40.833333333333,
307 42.205882352941, 42.745098039216, 44.411764705882, 45.269607843137,
308 46.029411764706, 50.024509803922, 50.220588235294, 50.367647058824,
309 50.735294117647, 55.0, 57.720930232558, 60.274418604651, 61.404651162791,
310 68.018604651163, 72.874418604651, 82.293023255814, 84.553488372093,
311 88.86511627907, 95.479069767442, 96.06511627907, 98.995348837209,
312 99.497674418605, 100.0, 0.0, 14.0, 14.419520547945, 14.647260273973,
313 14.982876712329, 15.150684931507, 15.234589041096, 15.582191780822,
314 16.684931506849, 17.068493150685, 17.47602739726, 17.571917808219,
315 18.147260273973, 18.578767123288, 18.794520547945, 19.046232876712,
316 19.130136986301, 19.309931506849, 19.573630136986, 19.825342465753,
317 20.077054794521, 20.592465753425, 20.952054794521, 21.0, 21.324503311258,
318 22.529801324503, 23.549668874172, 23.87417218543, 24.152317880795,
319 24.847682119205, 25.450331125828, 25.682119205298, 25.774834437086,
320 25.867549668874, 26.377483443709, 27.165562913907, 28.0, 28.913043478261,
321 30.231884057971, 31.821256038647, 32.057971014493, 32.36231884058,
322 33.545893719807, 34.458937198068, 34.830917874396, 35.0, 35.054200542005,
323 35.216802168022, 35.514905149051, 38.008130081301, 38.089430894309,
324 39.579945799458, 39.769647696477, 40.176151761518, 40.663956639566,
325 41.476964769648, 41.531165311653, 41.964769647696, 43.726287262873,
326 44.457994579946, 45.975609756098, 46.571815718157, 48.414634146341,
327 49.363143631436, 50.20325203252, 54.620596205962, 54.837398373984, 55.0,
328 55.583910034602, 62.357266435986, 64.887543252595, 67.262110726644,
329 68.313148788927, 74.463667820069, 78.979238754325, 87.737889273356,
330 89.839965397924, 93.849480968858, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 14.0,
331 14.708092485549, 15.092485549133, 15.658959537572, 15.942196531792,
332 16.083815028902, 16.670520231214, 18.531791907514, 19.179190751445,
333 19.867052023121, 20.028901734104, 21.0, 21.739002932551, 22.108504398827,
334 22.539589442815, 22.683284457478, 22.991202346041, 23.442815249267,
335 23.873900293255, 24.304985337243, 25.187683284457, 25.803519061584,
336 25.885630498534, 26.029325513196, 26.563049853372, 27.014662756598,
337 27.158357771261, 27.281524926686, 27.589442815249, 27.856304985337,
338 27.958944281525, 28.0, 28.083333333333, 28.541666666667, 29.25, 30.0, 31.125,
339 32.75, 34.708333333333, 35.0, 35.291734197731, 36.426256077796,
340 37.301458670989, 37.658022690438, 37.820097244733, 37.884927066451,
341 38.079416531605, 38.435980551053, 41.418152350081, 41.515397082658,
342 43.298217179903, 43.525121555916, 44.011345218801, 44.594813614263,
343 45.567260940032, 45.63209076175, 46.150729335494, 48.257698541329,
344 49.132901134522, 50.948136142626, 51.661264181523, 53.865478119935, 55.0,
345 56.15671641791, 62.238805970149, 62.537313432836, 62.761194029851,
346 63.320895522388, 69.813432835821, 72.238805970149, 74.514925373134,
347 75.522388059701, 81.417910447761, 85.746268656716, 94.141791044776,
348 96.15671641791, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 14.0,
349 16.987804878049, 18.609756097561, 21.0, 21.175942549372, 21.263913824057,
350 21.628366247756, 22.784560143627, 23.18671454219, 23.614003590664,
351 23.714542190305, 24.317773788151, 24.770197486535, 24.996409335727,
352 25.260323159785, 25.34829443447, 25.536804308797, 25.81328545781,
353 26.077199281867, 26.341113105925, 26.881508078995, 27.258527827648,
354 27.308797127469, 27.396768402154, 27.723518850987, 28.0, 28.39837398374,
355 28.739837398374, 29.593495934959, 30.333333333333, 30.617886178862,
356 30.731707317073, 30.845528455285, 31.471544715447, 32.439024390244,
357 33.463414634146, 35.0, 36.553784860558, 38.426294820717, 38.705179282869,
358 39.06374501992, 40.458167330677, 41.533864541833, 41.972111553785,
359 42.171314741036, 42.250996015936, 42.490039840637, 42.92828685259,
360 46.593625498008, 46.713147410359, 48.90438247012, 49.183266932271,
361 49.780876494024, 50.498007968127, 51.693227091633, 51.772908366534,
362 52.410358565737, 55.0, 55.966587112172, 57.971360381862, 58.758949880668,
363 61.193317422434, 62.44630071599, 63.556085918854, 69.391408114558,
364 69.677804295943, 69.892601431981, 70.429594272076, 76.658711217184,
365 78.985680190931, 81.169451073986, 82.136038186158, 87.792362768496,
366 91.945107398568, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0,
367 21.0, 21.414551607445, 21.639593908629, 21.971235194585, 22.137055837563,
368 22.219966159052, 22.56345177665, 23.653130287648, 24.032148900169,
369 24.434856175973, 24.529610829103, 25.098138747885, 25.524534686971,
370 25.737732656514, 25.986463620981, 26.06937394247, 26.24703891709,
371 26.507614213198, 26.756345177665, 27.005076142132, 27.514382402707,
372 27.869712351946, 27.917089678511, 28.0, 30.394736842105, 32.421052631579,
373 33.065789473684, 33.618421052632, 35.0, 35.668380462725, 35.925449871465,
374 36.028277634961, 36.131105398458, 36.696658097686, 37.570694087404,
375 38.496143958869, 39.884318766067, 41.889460154242, 44.305912596401,
376 44.665809768638, 45.12853470437, 46.928020565553, 48.316195372751,
377 48.881748071979, 49.13881748072, 49.241645244216, 49.550128534704,
378 50.115681233933, 54.845758354756, 55.0, 57.201957295374, 57.482206405694,
379 58.082740213523, 58.803380782918, 60.004448398577, 60.084519572954,
380 60.725088967972, 63.327402135231, 64.408362989324, 66.650355871886,
381 67.531138790036, 70.253558718861, 71.654804270463, 72.89590747331,
382 79.421708185053, 79.741992882562, 79.982206405694, 80.582740213523,
383 87.548932384342, 90.151245551601, 92.593416370107, 93.674377224199, 100.0,
384 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 21.0,
385 21.822147651007, 22.268456375839, 22.926174496644, 23.255033557047,
386 23.419463087248, 24.10067114094, 26.261744966443, 27.013422818792,
387 27.812080536913, 28.0, 29.191489361702, 30.085106382979, 30.531914893617,
388 31.053191489362, 31.22695035461, 31.599290780142, 32.145390070922,
389 32.666666666667, 33.187943262411, 34.255319148936, 35.0, 35.298507462687,
390 35.820895522388, 37.761194029851, 39.402985074627, 39.925373134328,
391 40.373134328358, 41.492537313433, 42.462686567164, 42.835820895522,
392 42.985074626866, 43.134328358209, 43.955223880597, 45.223880597015,
393 46.567164179104, 48.582089552239, 51.492537313433, 55.0, 55.381355932203,
394 55.871670702179, 57.778450363196, 59.249394673123, 59.848668280872,
395 60.121065375303, 60.230024213075, 60.556900726392, 61.15617433414,
396 66.168280871671, 66.331719128329, 69.32808716707, 69.709443099274,
397 70.526634382567, 71.507263922518, 73.141646489104, 73.250605326877,
398 74.122276029056, 77.663438256659, 79.134382566586, 82.185230024213,
399 83.383777239709, 87.088377723971, 88.995157384988, 90.68401937046,
400 99.56416464891, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
401 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0, 21.0, 28.0,
402 28.383285302594, 28.948126801153, 29.230547550432, 29.371757925072,
403 29.956772334294, 31.812680115274, 32.458213256484, 33.14409221902,
404 33.305475504323, 34.273775216138, 35.0, 36.333333333333, 37.888888888889,
405 38.407407407407, 39.518518518519, 41.148148148148, 42.703703703704,
406 44.259259259259, 47.444444444444, 49.666666666667, 49.962962962963,
407 50.481481481481, 52.407407407407, 54.037037037037, 54.555555555556, 55.0,
408 55.941422594142, 56.757322175732, 57.071129707113, 57.196652719665,
409 57.322175732218, 58.012552301255, 59.07949790795, 60.20920502092,
410 61.903765690377, 64.351464435146, 67.301255230126, 67.740585774059,
411 68.305439330544, 70.502092050209, 72.196652719665, 72.887029288703,
412 73.200836820084, 73.326359832636, 73.702928870293, 74.393305439331,
413 80.167364016736, 80.355648535565, 83.807531380753, 84.246861924686,
414 85.188284518828, 86.317991631799, 88.200836820084, 88.326359832636,
415 89.330543933054, 93.410041841004, 95.10460251046, 98.619246861925, 100.0,
416 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
417 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 0.0,
418 28.0, 28.95703125, 29.4765625, 30.2421875, 30.625, 30.81640625, 31.609375,
419 34.125, 35.0, 37.098765432099, 37.592592592593, 40.555555555556,
420 42.777777777778, 43.888888888889, 45.185185185185, 45.617283950617,
421 46.543209876543, 47.901234567901, 49.197530864198, 50.493827160494,
422 53.148148148148, 55.0, 55.234680573664, 55.645371577575, 57.170795306389,
423 58.461538461538, 58.87222946545, 59.224250325945, 60.104302477184,
424 60.867014341591, 61.16036505867, 61.277705345502, 61.395045632334,
425 62.040417209909, 63.037809647979, 64.093872229465, 65.677966101695,
426 67.966101694915, 70.723598435463, 71.134289439374, 71.662320730117,
427 73.715775749674, 75.299869621904, 75.945241199478, 76.238591916558,
428 76.35593220339, 76.707953063885, 77.35332464146, 82.750977835724,
429 82.926988265971, 86.153846153846, 86.564537157757, 87.444589308996,
430 88.500651890482, 90.26075619296, 90.378096479791, 91.316818774446,
431 95.13037809648, 96.714471968709, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
432 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
433 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
434 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
435 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
436 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
437 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
438 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
439 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
440 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
441 100.0 } ; /* Variable: APTC_TRQ_PED_INV_MAP_PED_POS_MPV
442 * Referenced by: '<S85>/2D_Lookup_Table'
443 */
444
445real_T APTC_TRQ_PED_INV_MAP_TRQ_STEPS[83] = { 0.0, 20.0, 55.0, 74.0, 102.0,
446 116.0, 123.0, 152.0, 244.0, 276.0, 310.0, 318.0, 366.0, 402.0, 420.0, 441.0,
447 448.0, 463.0, 485.0, 506.0, 527.0, 570.0, 600.0, 604.0, 611.0, 637.0, 659.0,
448 666.0, 672.0, 687.0, 700.0, 705.0, 707.0, 709.0, 720.0, 737.0, 755.0, 782.0,
449 821.0, 868.0, 875.0, 884.0, 919.0, 946.0, 957.0, 962.0, 964.0, 970.0, 981.0,
450 1073.0, 1076.0, 1131.0, 1138.0, 1153.0, 1171.0, 1201.0, 1203.0, 1219.0, 1284.0,
451 1311.0, 1367.0, 1389.0, 1457.0, 1492.0, 1523.0, 1686.0, 1694.0, 1700.0, 1715.0,
452 1889.0, 1954.0, 2015.0, 2042.0, 2200.0, 2316.0, 2541.0, 2595.0, 2698.0, 2856.0,
453 2870.0, 2940.0, 2952.0, 2964.0 } ; /* Variable: APTC_TRQ_PED_INV_MAP_TRQ_STEPS
454 * Referenced by: '<S85>/2D_Lookup_Table'
455 */
456
457real_T APTC_TRQ_PED_TRQ_DATA_MPV[128] = { 0.0, 448.0, 570.0, 737.0, 981.0,
458 1138.0, 1311.0, 1457.0, 0.0, 420.0, 527.0, 720.0, 970.0, 1131.0, 1311.0,
459 1715.0, 0.0, 244.0, 506.0, 700.0, 964.0, 1171.0, 1523.0, 2316.0, 0.0, 152.0,
460 485.0, 709.0, 957.0, 1201.0, 1686.0, 2595.0, 0.0, 116.0, 463.0, 720.0, 946.0,
461 1219.0, 1954.0, 2870.0, 0.0, 74.0, 441.0, 705.0, 919.0, 1203.0, 2042.0, 2940.0,
462 0.0, 20.0, 310.0, 666.0, 884.0, 1153.0, 2015.0, 2952.0, 0.0, 20.0, 123.0,
463 637.0, 821.0, 1073.0, 1889.0, 2964.0, 0.0, 20.0, 20.0, 604.0, 755.0, 962.0,
464 1700.0, 2856.0, 0.0, 20.0, 20.0, 366.0, 707.0, 875.0, 1492.0, 2698.0, 0.0,
465 20.0, 20.0, 102.0, 659.0, 782.0, 1284.0, 2541.0, 0.0, 20.0, 20.0, 20.0, 611.0,
466 687.0, 1076.0, 2200.0, 0.0, 20.0, 20.0, 20.0, 318.0, 600.0, 868.0, 1694.0, 0.0,
467 20.0, 20.0, 20.0, 55.0, 402.0, 672.0, 1389.0, 0.0, 20.0, 20.0, 20.0, 20.0,
468 276.0, 600.0, 1367.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;/* Variable: APTC_TRQ_PED_TRQ_DATA_MPV
469 * Referenced by: '<S83>/2-D Lookup Table'
470 */
471
472real_T APTC_TRQ_PED_TRQ_ESPD_STEP_MPV[16] = { 500.0, 650.0, 885.0, 950.0, 1050.0,
473 1120.0, 1240.0, 1360.0, 1475.0, 1590.0, 1710.0, 1830.0, 1950.0, 2150.0, 2300.0,
474 2350.0 } ; /* Variable: APTC_TRQ_PED_TRQ_ESPD_STEP_MPV
475 * Referenced by:
476 * '<S83>/2-D Lookup Table'
477 * '<S85>/2D_Lookup_Table'
478 */
479
480real_T APTC_TRQ_PED_TRQ_POS_STEP_MPV[8] = { 0.0, 7.0, 14.0, 21.0, 28.0, 35.0,
481 55.0, 100.0 } ; /* Variable: APTC_TRQ_PED_TRQ_POS_STEP_MPV
482 * Referenced by: '<S83>/2-D Lookup Table'
483 */
484
485real_T BRK_DEM_KD_DATA_MPV[8] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;/* Variable: BRK_DEM_KD_DATA_MPV
486 * Referenced by: '<S143>/1D_Lookup_Table'
487 */
488
489real_T BRK_DEM_KI_DATA_MPV[8] = { -1.5, -1.5, -1.5, -1.5, -1.5, -1.5, -1.5, -1.5
490} ; /* Variable: BRK_DEM_KI_DATA_MPV
491 * Referenced by: '<S142>/1D_Lookup_Table'
492 */
493
494real_T BRK_DEM_KP_DATA_MPV[8] = { -4.0, -4.0, -4.0, -4.0, -4.0, -4.0, -4.0, -4.0
495} ; /* Variable: BRK_DEM_KP_DATA_MPV
496 * Referenced by: '<S141>/1D_Lookup_Table'
497 */
498
499real_T BRK_DEM_MASS_STEP_MPV[8] = { 0.0, 5000.0, 10000.0, 20000.0, 30000.0,
500 40000.0, 50000.0, 54000.0 } ; /* Variable: BRK_DEM_MASS_STEP_MPV
501 * Referenced by:
502 * '<S141>/1D_Lookup_Table'
503 * '<S142>/1D_Lookup_Table'
504 * '<S143>/1D_Lookup_Table'
505 */
506
507real_T BRK_GOV_FF_DECEL_RATE_DATA_MPV[32] = { 0.0, -0.39, -1.76, -3.13, -4.5,
508 -5.87, -7.24, -8.61, -9.98, -11.35, -12.72, -14.09, -15.46, -16.83, -18.2,
509 -19.57, 0.0, -0.12, -0.53, -0.94, -1.35, -1.76, -2.17, -2.58, -2.99, -3.41,
510 -3.82, -4.23, -4.64, -5.05, -5.46, -5.87 } ;/* Variable: BRK_GOV_FF_DECEL_RATE_DATA_MPV
511 * Referenced by: '<S193>/2D_Lookup_Table'
512 */
513
514real_T BRK_GOV_FF_DECEL_RATE_STEP_MPV[16] = { -19.57, -18.2, -16.83, -15.46,
515 -14.09, -12.72, -11.35, -9.98, -8.61, -7.24, -5.87, -4.5, -3.13, -1.76, -0.39,
516 0.0 } ; /* Variable: BRK_GOV_FF_DECEL_RATE_STEP_MPV
517 * Referenced by:
518 * '<S194>/2D_Lookup_Table'
519 * '<S195>/2D_Lookup_Table'
520 */
521
522real_T BRK_GOV_FF_MASS_STEP_MPV[2] = { 9035.0, 36287.0 } ;/* Variable: BRK_GOV_FF_MASS_STEP_MPV
523 * Referenced by:
524 * '<S193>/2D_Lookup_Table'
525 * '<S194>/2D_Lookup_Table'
526 * '<S195>/2D_Lookup_Table'
527 */
528
529real_T BRK_GOV_FF_PRESS_KPA_DATA_MPV[32] = { 1034.0, 965.0, 896.0, 827.0, 758.0,
530 689.0, 621.0, 552.0, 483.0, 414.0, 345.0, 276.0, 207.0, 138.0, 69.0, 0.0,
531 2585.0, 2413.0, 2240.0, 2068.0, 1895.0, 1723.0, 1553.0, 1380.0, 1208.0, 1035.0,
532 863.0, 690.0, 518.0, 345.0, 173.0, 0.0 } ;/* Variable: BRK_GOV_FF_PRESS_KPA_DATA_MPV
533 * Referenced by:
534 * '<S194>/2D_Lookup_Table'
535 * '<S195>/2D_Lookup_Table'
536 */
537
538real_T BRK_GOV_FF_PRESS_KPA_STEP_MPV[16] = { 0.0, 69.0, 138.0, 207.0, 276.0,
539 345.0, 414.0, 483.0, 552.0, 621.0, 689.0, 758.0, 827.0, 896.0, 965.0, 1034.0 }
540; /* Variable: BRK_GOV_FF_PRESS_KPA_STEP_MPV
541 * Referenced by: '<S193>/2D_Lookup_Table'
542 */
543
544real_T Curvature_FF_Gain = 5.7; /* Variable: Curvature_FF_Gain
545 * Referenced by: '<S274>/FeedforwardGain'
546 */
547real_T DISTANCE_M = 200.0; /* Variable: DISTANCE_M
548 * Referenced by: '<S81>/DISTANCE_M'
549 */
550real_T Lateral_Control_Curvature_Limit = 0.5;/* Variable: Lateral_Control_Curvature_Limit
551 * Referenced by:
552 * '<S274>/Constant3'
553 * '<S274>/Constant5'
554 */
555real_T Lateral_Control_D = 0.25; /* Variable: Lateral_Control_D
556 * Referenced by: '<S298>/Derivative Gain'
557 */
558real_T Lateral_Control_Error_Limit = 0.1;/* Variable: Lateral_Control_Error_Limit
559 * Referenced by:
560 * '<S274>/Constant'
561 * '<S274>/Constant1'
562 */
563real_T Lateral_Control_I = 0.0; /* Variable: Lateral_Control_I
564 * Referenced by: '<S298>/Integral Gain'
565 */
566real_T Lateral_Control_P = 0.3; /* Variable: Lateral_Control_P
567 * Referenced by:
568 * '<S274>/PGain'
569 * '<S298>/Proportional Gain'
570 */
571real_T Lateral_Control_Pole = 0.98; /* Variable: Lateral_Control_Pole
572 * Referenced by: '<S300>/GainPole'
573 */
574real_T Lateral_Control_YawRate_Limit = 1.0;/* Variable: Lateral_Control_YawRate_Limit
575 * Referenced by:
576 * '<S274>/Constant2'
577 * '<S274>/Constant4'
578 */
579real_T Lateral_Control_Zero = 0.99; /* Variable: Lateral_Control_Zero
580 * Referenced by: '<S300>/GainZero'
581 */
582real_T PROPB_REAX_1_E4_DESIRED_POSITION_APV = 0.0;/* Variable: PROPB_REAX_1_E4_DESIRED_POSITION_APV
583 * Referenced by: '<S960>/Constant7'
584 */
585real_T STEERCTRL_WHEEL_ANGLE_DATA_MPV[72] = { -800.02001953125, -780.02899169922,
586 -760.03399658203, -740.0, -720.0, -700.00402832031, -680.0, -660.01397705078,
587 -640.01898193359, -620.02398681641, -600.02001953125, -580.03399658203,
588 -560.03900146484, -540.0, -520.00402832031, -500.00900268555, -480.01400756836,
589 -460.01901245117, -440.02398681641, -420.01998901367, -400.03399658203,
590 -380.03900146484, -360.0, -340.00399780273, -320.00900268555, -300.01400756836,
591 -280.01901245117, -260.02398681641, -240.02900695801, -220.03399658203,
592 -200.03900146484, -180.0, -160.00399780273, -140.00900268555, -120.01399993896,
593 -100.01899719238, -80.024002075195, -60.028999328613, -40.034000396729,
594 0.52700001001358, 29.969999313354, 50.00899887085, 69.959999084473,
595 89.949996948242, 109.99500274658, 129.99000549316, 149.98500061035,
596 170.0240020752, 189.97500610352, 209.9700012207, 229.96499633789,
597 249.96000671387, 270.0, 289.99499511719, 309.98999023438, 329.98498535156,
598 349.98001098633, 369.97500610352, 390.01400756836, 410.00900268555, 450.0,
599 470.0299987793, 489.98999023438, 509.98498535156, 529.97998046875,
600 549.97497558594, 569.96997070313, 589.96502685547, 610.21997070313, 630.0,
601 650.25, 670.0 } ; /* Variable: STEERCTRL_WHEEL_ANGLE_DATA_MPV
602 * Referenced by: '<S270>/1D_Lookup_Table'
603 */
604
605real_T STEERCTRL_WHEEL_ANGLE_STEP_MPV[72] = { -46.0, -44.5, -43.0, -42.0, -40.0,
606 -39.0, -37.5, -36.5, -35.0, -34.0, -33.0, -31.5, -30.5, -29.0, -28.0, -26.5,
607 -25.5, -24.5, -23.5, -22.0, -21.0, -20.0, -19.0, -17.5, -16.5, -15.5, -14.0,
608 -13.0, -12.0, -11.0, -10.0, -8.5, -7.5, -6.5, -5.0, -4.0, -3.0, -2.0, -1.0,
609 0.0, 1.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0,
610 15.0, 16.0, 17.0, 18.5, 19.5, 20.5, 21.5, 23.5, 24.5, 25.5, 26.5, 27.5, 28.5,
611 29.0, 30.0, 31.0, 31.5, 32.5, 33.0 } ;/* Variable: STEERCTRL_WHEEL_ANGLE_STEP_MPV
612 * Referenced by: '<S270>/1D_Lookup_Table'
613 */
614
615real_T TQ_DEM_GEAR_RATIO_STEP_MPV[8] = { 0.0, 0.2, 4.0, 8.0, 10.0, 16.0, 18.0,
616 20.0 } ; /* Variable: TQ_DEM_GEAR_RATIO_STEP_MPV
617 * Referenced by:
618 * '<S235>/2D_Lookup_Table'
619 * '<S236>/2D_Lookup_Table'
620 * '<S237>/2D_Lookup_Table'
621 */
622
623real_T TQ_DEM_KD_DATA_MPV[64] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
624 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
625 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
626 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
627 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } ;/* Variable: TQ_DEM_KD_DATA_MPV
628 * Referenced by: '<S237>/2D_Lookup_Table'
629 */
630
631real_T TQ_DEM_KI_DATA_MPV[64] = { 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
632 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
633 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
634 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7,
635 0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7 } ;/* Variable: TQ_DEM_KI_DATA_MPV
636 * Referenced by: '<S236>/2D_Lookup_Table'
637 */
638
639real_T TQ_DEM_KP_DATA_MPV[64] = { 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
640 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
641 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
642 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0,
643 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0 } ;/* Variable: TQ_DEM_KP_DATA_MPV
644 * Referenced by: '<S235>/2D_Lookup_Table'
645 */
646
647real_T TQ_DEM_MASS_STEP_MPV[8] = { 0.0, 5000.0, 10000.0, 20000.0, 30000.0,
648 40000.0, 50000.0, 54000.0 } ; /* Variable: TQ_DEM_MASS_STEP_MPV
649 * Referenced by:
650 * '<S235>/2D_Lookup_Table'
651 * '<S236>/2D_Lookup_Table'
652 * '<S237>/2D_Lookup_Table'
653 */
654
655real_T UndersteerCorection = 1.5; /* Variable: UndersteerCorection
656 * Referenced by: '<S274>/UndersteerCorrection'
657 */
658real_T VSPD_TARGET_KPH_APV = 0.0; /* Variable: VSPD_TARGET_KPH_APV
659 * Referenced by: '<S81>/VSPD_TARGET_KPH_APV'
660 */
661real_T Yaw_Rate_FF_Gain = 0.15; /* Variable: Yaw_Rate_FF_Gain
662 * Referenced by: '<S274>/RateFeedbackGain'
663 */
664ENUM_AUTONOMOUS_MODE_T AUTONOMOUS_MODE_SELECTOR_APV =
665 ENUM_AUTONOMOUS_MODE_T_AUTO; /* Variable: AUTONOMOUS_MODE_SELECTOR_APV
666 * Referenced by: '<S76>/AUTONOMOUS_MODE_SELECTOR_APV'
667 */
668ENUM_CAN_RX_T CANR_PROPB_XPR_1_50_CHANNEL_APV = ENUM_CAN_RX_T_RX_CAN_3;/* Variable: CANR_PROPB_XPR_1_50_CHANNEL_APV
669 * Referenced by: '<S432>/Constant'
670 */
671ENUM_CAN_RX_T PROPB_REAX_CHANNEL_APV = ENUM_CAN_RX_T_RX_CAN_6;/* Variable: PROPB_REAX_CHANNEL_APV
672 * Referenced by:
673 * '<S430>/Constant'
674 * '<S431>/Constant'
675 * '<S452>/Constant3'
676 */
677ENUM_LONG_SPEED_DEMAND_SOURCE_T LONG_SPEED_SRC_SELECTOR_APV =
678 ENUM_LONG_SPEED_DEMAND_SOURCE_T_RW_WAYPOINTS;/* Variable: LONG_SPEED_SRC_SELECTOR_APV
679 * Referenced by:
680 * '<S80>/LONG_SPEED_SRC_SELECTOR_APV'
681 * '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
682 */
683ENUM_REAX_OPERATION_MODE_T PROPB_REAX_1_E4_DESIRED_OPMODE_APV =
684 ENUM_REAX_OPERATION_MODE_T_POSITION_CTRL_MODE;/* Variable: PROPB_REAX_1_E4_DESIRED_OPMODE_APV
685 * Referenced by: '<S943>/Constant6'
686 */
687ENUM_STEERING_POS_SIGNAL_SOURCE_T PROPB_REAX_1_E4_DES_POS_SIG_SRC_APV =
688 ENUM_STEERING_POS_SIGNAL_SOURCE_T_ESTIMATION;/* Variable: PROPB_REAX_1_E4_DES_POS_SIG_SRC_APV
689 * Referenced by: '<S960>/Constant1'
690 */
691ENUM_SWITCH_T RATE_LIMITER_ENABLE_APV = ENUM_SWITCH_T_ON;/* Variable: RATE_LIMITER_ENABLE_APV
692 * Referenced by: '<S299>/RATE_LIMITER_ENABLE_APV'
693 */
694
695/* Block signals (default storage) */
696B_L4_MABX_T L4_MABX_B;
697
698/* Block states (default storage) */
699DW_L4_MABX_T L4_MABX_DW;
700
701/* Previous zero-crossings (trigger) states */
702PrevZCX_L4_MABX_T L4_MABX_PrevZCX;
703
704/* Real-time model */
705RT_MODEL_L4_MABX_T L4_MABX_M_;
706RT_MODEL_L4_MABX_T *const L4_MABX_M = &L4_MABX_M_;
707
708/* Forward declaration for local functions */
709static int32_T safe_cast_to_ENUM_XPR_CONTROL_M(int32_T input);
710static int32_T safe_cast_to_ENUM_XPR_ERROR_STA(int32_T input);
711static void L4_MABX_enter_atomic_INITIAL(void);
712static void L4_MABX_Calculate_abc(void);
713static void L4_MABX_CalculateAlternate_abc(void);
714static void L4_MABX_CalculateAcceleration34(void);
715static int32_T safe_cast_to_ENUM_CAN_STATUS_DI(int32_T input);
716
717/* Lookup Binary Search Utility BINARYSEARCH_real_T */
718void BINARYSEARCH_real_T(uint32_T *piLeft, uint32_T *piRght, real_T u, const
719 real_T *pData, uint32_T iHi)
720{
721 /* Find the location of current input value in the data table. */
722 *piLeft = 0U;
723 *piRght = iHi;
724 if (u <= pData[0] ) {
725 /* Less than or equal to the smallest point in the table. */
726 *piRght = 0U;
727 } else if (u >= pData[iHi] ) {
728 /* Greater than or equal to the largest point in the table. */
729 *piLeft = iHi;
730 } else {
731 uint32_T i;
732
733 /* Do a binary search. */
734 while (( *piRght - *piLeft ) > 1U ) {
735 /* Get the average of the left and right indices using to Floor rounding. */
736 i = (*piLeft + *piRght) >> 1;
737
738 /* Move either the right index or the left index so that */
739 /* LeftDataPoint <= CurrentValue < RightDataPoint */
740 if (u < pData[i] ) {
741 *piRght = i;
742 } else {
743 *piLeft = i;
744 }
745 }
746 }
747}
748
749/* Lookup Utility LookUp_real_T_real_T */
750void LookUp_real_T_real_T(real_T *pY, const real_T *pYData, real_T u, const
751 real_T *pUData, uint32_T iHi)
752{
753 uint32_T iLeft;
754 uint32_T iRght;
755 BINARYSEARCH_real_T( &(iLeft), &(iRght), u, pUData, iHi);
756
757 {
758 real_T lambda;
759 if (pUData[iRght] > pUData[iLeft] ) {
760 real_T num;
761 real_T den;
762 den = pUData[iRght];
763 den -= pUData[iLeft];
764 num = u;
765 num -= pUData[iLeft];
766 lambda = num / den;
767 } else {
768 lambda = 0.0;
769 }
770
771 {
772 real_T yLeftCast;
773 real_T yRghtCast;
774 yLeftCast = pYData[iLeft];
775 yRghtCast = pYData[iRght];
776 yLeftCast += lambda * ( yRghtCast - yLeftCast );
777 (*pY) = yLeftCast;
778 }
779 }
780}
781
782real_T look1_binlcapw(real_T u0, const real_T bp0[], const real_T table[],
783 uint32_T maxIndex)
784{
785 real_T y;
786 real_T frac;
787 uint32_T iRght;
788 uint32_T iLeft;
789 uint32_T bpIdx;
790
791 /* Lookup 1-D
792 Search method: 'binary'
793 Use previous index: 'off'
794 Interpolation method: 'Linear point-slope'
795 Extrapolation method: 'Clip'
796 Use last breakpoint for index at or above upper limit: 'on'
797 Remove protection against out-of-range input in generated code: 'off'
798 */
799 /* Prelookup - Index and Fraction
800 Index Search method: 'binary'
801 Extrapolation method: 'Clip'
802 Use previous index: 'off'
803 Use last breakpoint for index at or above upper limit: 'on'
804 Remove protection against out-of-range input in generated code: 'off'
805 */
806 if (u0 <= bp0[0U]) {
807 iLeft = 0U;
808 frac = 0.0;
809 } else if (u0 < bp0[maxIndex]) {
810 /* Binary Search */
811 bpIdx = maxIndex >> 1U;
812 iLeft = 0U;
813 iRght = maxIndex;
814 while (iRght - iLeft > 1U) {
815 if (u0 < bp0[bpIdx]) {
816 iRght = bpIdx;
817 } else {
818 iLeft = bpIdx;
819 }
820
821 bpIdx = (iRght + iLeft) >> 1U;
822 }
823
824 frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
825 } else {
826 iLeft = maxIndex;
827 frac = 0.0;
828 }
829
830 /* Interpolation 1-D
831 Interpolation method: 'Linear point-slope'
832 Use last breakpoint for index at or above upper limit: 'on'
833 Overflow mode: 'portable wrapping'
834 */
835 if (iLeft == maxIndex) {
836 y = table[iLeft];
837 } else {
838 y = (table[iLeft + 1U] - table[iLeft]) * frac + table[iLeft];
839 }
840
841 return y;
842}
843
844real_T look2_binlcapw(real_T u0, real_T u1, const real_T bp0[], const real_T
845 bp1[], const real_T table[], const uint32_T maxIndex[],
846 uint32_T stride)
847{
848 real_T y;
849 real_T frac;
850 uint32_T bpIndices[2];
851 real_T fractions[2];
852 real_T yR_1d;
853 uint32_T iRght;
854 uint32_T bpIdx;
855 uint32_T iLeft;
856
857 /* Lookup 2-D
858 Search method: 'binary'
859 Use previous index: 'off'
860 Interpolation method: 'Linear point-slope'
861 Extrapolation method: 'Clip'
862 Use last breakpoint for index at or above upper limit: 'on'
863 Remove protection against out-of-range input in generated code: 'off'
864 */
865 /* Prelookup - Index and Fraction
866 Index Search method: 'binary'
867 Extrapolation method: 'Clip'
868 Use previous index: 'off'
869 Use last breakpoint for index at or above upper limit: 'on'
870 Remove protection against out-of-range input in generated code: 'off'
871 */
872 if (u0 <= bp0[0U]) {
873 iLeft = 0U;
874 frac = 0.0;
875 } else if (u0 < bp0[maxIndex[0U]]) {
876 /* Binary Search */
877 bpIdx = maxIndex[0U] >> 1U;
878 iLeft = 0U;
879 iRght = maxIndex[0U];
880 while (iRght - iLeft > 1U) {
881 if (u0 < bp0[bpIdx]) {
882 iRght = bpIdx;
883 } else {
884 iLeft = bpIdx;
885 }
886
887 bpIdx = (iRght + iLeft) >> 1U;
888 }
889
890 frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
891 } else {
892 iLeft = maxIndex[0U];
893 frac = 0.0;
894 }
895
896 fractions[0U] = frac;
897 bpIndices[0U] = iLeft;
898
899 /* Prelookup - Index and Fraction
900 Index Search method: 'binary'
901 Extrapolation method: 'Clip'
902 Use previous index: 'off'
903 Use last breakpoint for index at or above upper limit: 'on'
904 Remove protection against out-of-range input in generated code: 'off'
905 */
906 if (u1 <= bp1[0U]) {
907 iLeft = 0U;
908 frac = 0.0;
909 } else if (u1 < bp1[maxIndex[1U]]) {
910 /* Binary Search */
911 bpIdx = maxIndex[1U] >> 1U;
912 iLeft = 0U;
913 iRght = maxIndex[1U];
914 while (iRght - iLeft > 1U) {
915 if (u1 < bp1[bpIdx]) {
916 iRght = bpIdx;
917 } else {
918 iLeft = bpIdx;
919 }
920
921 bpIdx = (iRght + iLeft) >> 1U;
922 }
923
924 frac = (u1 - bp1[iLeft]) / (bp1[iLeft + 1U] - bp1[iLeft]);
925 } else {
926 iLeft = maxIndex[1U];
927 frac = 0.0;
928 }
929
930 /* Interpolation 2-D
931 Interpolation method: 'Linear point-slope'
932 Use last breakpoint for index at or above upper limit: 'on'
933 Overflow mode: 'portable wrapping'
934 */
935 bpIdx = iLeft * stride + bpIndices[0U];
936 if (bpIndices[0U] == maxIndex[0U]) {
937 y = table[bpIdx];
938 } else {
939 y = (table[bpIdx + 1U] - table[bpIdx]) * fractions[0U] + table[bpIdx];
940 }
941
942 if (iLeft == maxIndex[1U]) {
943 } else {
944 bpIdx += stride;
945 if (bpIndices[0U] == maxIndex[0U]) {
946 yR_1d = table[bpIdx];
947 } else {
948 yR_1d = (table[bpIdx + 1U] - table[bpIdx]) * fractions[0U] + table[bpIdx];
949 }
950
951 y += (yR_1d - y) * frac;
952 }
953
954 return y;
955}
956
957real_T look1_binlxpw(real_T u0, const real_T bp0[], const real_T table[],
958 uint32_T maxIndex)
959{
960 real_T frac;
961 uint32_T iRght;
962 uint32_T iLeft;
963 uint32_T bpIdx;
964
965 /* Lookup 1-D
966 Search method: 'binary'
967 Use previous index: 'off'
968 Interpolation method: 'Linear point-slope'
969 Extrapolation method: 'Linear'
970 Use last breakpoint for index at or above upper limit: 'off'
971 Remove protection against out-of-range input in generated code: 'off'
972 */
973 /* Prelookup - Index and Fraction
974 Index Search method: 'binary'
975 Extrapolation method: 'Linear'
976 Use previous index: 'off'
977 Use last breakpoint for index at or above upper limit: 'off'
978 Remove protection against out-of-range input in generated code: 'off'
979 */
980 if (u0 <= bp0[0U]) {
981 iLeft = 0U;
982 frac = (u0 - bp0[0U]) / (bp0[1U] - bp0[0U]);
983 } else if (u0 < bp0[maxIndex]) {
984 /* Binary Search */
985 bpIdx = maxIndex >> 1U;
986 iLeft = 0U;
987 iRght = maxIndex;
988 while (iRght - iLeft > 1U) {
989 if (u0 < bp0[bpIdx]) {
990 iRght = bpIdx;
991 } else {
992 iLeft = bpIdx;
993 }
994
995 bpIdx = (iRght + iLeft) >> 1U;
996 }
997
998 frac = (u0 - bp0[iLeft]) / (bp0[iLeft + 1U] - bp0[iLeft]);
999 } else {
1000 iLeft = maxIndex - 1U;
1001 frac = (u0 - bp0[maxIndex - 1U]) / (bp0[maxIndex] - bp0[maxIndex - 1U]);
1002 }
1003
1004 /* Interpolation 1-D
1005 Interpolation method: 'Linear point-slope'
1006 Use last breakpoint for index at or above upper limit: 'off'
1007 Overflow mode: 'portable wrapping'
1008 */
1009 return (table[iLeft + 1U] - table[iLeft]) * frac + table[iLeft];
1010}
1011
1012/*
1013 * Output and update for atomic system:
1014 * '<S82>/If_Then_Else'
1015 * '<S83>/If_Then_Else'
1016 * '<S83>/If_Then_Else1'
1017 * '<S89>/If_Then_Else'
1018 * '<S89>/If_Then_Else1'
1019 * '<S90>/If_Then_Else'
1020 * '<S90>/If_Then_Else1'
1021 * '<S115>/If_Then_Else'
1022 * '<S118>/If_Then_Else'
1023 * '<S120>/If_Then_Else'
1024 * ...
1025 */
1026void L4_MABX_If_Then_Else(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Else,
1027 B_If_Then_Else_L4_MABX_T *localB)
1028{
1029 /* Switch: '<S86>/Switch' */
1030 if (rtu_If) {
1031 localB->Switch = rtu_Then;
1032 } else {
1033 localB->Switch = rtu_Else;
1034 }
1035
1036 /* End of Switch: '<S86>/Switch' */
1037}
1038
1039/*
1040 * System initialize for enable system:
1041 * '<S106>/Calculate_D_term'
1042 * '<S144>/Calculate_D_term'
1043 * '<S238>/Calculate_D_term'
1044 */
1045void L4_MA_Calculate_D_term_Init(B_Calculate_D_term_L4_MABX_T *localB,
1046 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1047{
1048 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay1' */
1049 localDW->Unit_Delay1_DSTATE = localP->Unit_Delay1_InitialCondition;
1050
1051 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay2' */
1052 localDW->Unit_Delay2_DSTATE = localP->Unit_Delay2_InitialCondition;
1053
1054 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay2' */
1055 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1056
1057 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay1' */
1058 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1059
1060 /* SystemInitialize for Outport: '<S110>/GPID_d_term' */
1061 localB->Subtract = localP->GPID_d_term_Y0;
1062}
1063
1064/*
1065 * System reset for enable system:
1066 * '<S106>/Calculate_D_term'
1067 * '<S144>/Calculate_D_term'
1068 * '<S238>/Calculate_D_term'
1069 */
1070void L4_M_Calculate_D_term_Reset(DW_Calculate_D_term_L4_MABX_T *localDW,
1071 P_Calculate_D_term_L4_MABX_T *localP)
1072{
1073 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay1' */
1074 localDW->Unit_Delay1_DSTATE = localP->Unit_Delay1_InitialCondition;
1075
1076 /* InitializeConditions for UnitDelay: '<S115>/Unit_Delay2' */
1077 localDW->Unit_Delay2_DSTATE = localP->Unit_Delay2_InitialCondition;
1078
1079 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay2' */
1080 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1081
1082 /* InitializeConditions for UnitDelay: '<S116>/FixPt Unit Delay1' */
1083 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1084}
1085
1086/*
1087 * Disable for enable system:
1088 * '<S106>/Calculate_D_term'
1089 * '<S144>/Calculate_D_term'
1090 * '<S238>/Calculate_D_term'
1091 */
1092void L4_Calculate_D_term_Disable(B_Calculate_D_term_L4_MABX_T *localB,
1093 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1094{
1095 /* Disable for Outport: '<S110>/GPID_d_term' */
1096 localB->Subtract = localP->GPID_d_term_Y0;
1097 localDW->Calculate_D_term_MODE = false;
1098}
1099
1100/*
1101 * Start for enable system:
1102 * '<S106>/Calculate_D_term'
1103 * '<S144>/Calculate_D_term'
1104 * '<S238>/Calculate_D_term'
1105 */
1106void L4_M_Calculate_D_term_Start(DW_Calculate_D_term_L4_MABX_T *localDW)
1107{
1108 localDW->Calculate_D_term_MODE = false;
1109}
1110
1111/*
1112 * Outputs for enable system:
1113 * '<S106>/Calculate_D_term'
1114 * '<S144>/Calculate_D_term'
1115 * '<S238>/Calculate_D_term'
1116 */
1117void L4_MABX_Calculate_D_term(boolean_T rtu_Enable, real_T rtu_GPID_Kd, real_T
1118 rtu_GPID_dT, boolean_T rtu_F_GPID_reset_gov, real_T rtu_GPID_control_error,
1119 real_T rtu_GPID_T_filt_d, B_Calculate_D_term_L4_MABX_T *localB,
1120 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1121{
1122 real_T maxV;
1123 real_T u1;
1124 real_T u2;
1125
1126 /* Outputs for Enabled SubSystem: '<S106>/Calculate_D_term' incorporates:
1127 * EnablePort: '<S110>/Enable'
1128 */
1129 if (rtu_Enable) {
1130 if (!localDW->Calculate_D_term_MODE) {
1131 L4_M_Calculate_D_term_Reset(localDW, localP);
1132 localDW->Calculate_D_term_MODE = true;
1133 }
1134
1135 /* UnitDelay: '<S115>/Unit_Delay1' */
1136 localB->Unit_Delay1 = localDW->Unit_Delay1_DSTATE;
1137
1138 /* Logic: '<S115>/Logical Operator' */
1139 localB->LogicalOperator = (rtu_F_GPID_reset_gov || localB->Unit_Delay1);
1140
1141 /* MinMax: '<S115>/MinMax1' */
1142 if ((rtu_GPID_dT > rtu_GPID_T_filt_d) || rtIsNaN(rtu_GPID_T_filt_d)) {
1143 maxV = rtu_GPID_dT;
1144 } else {
1145 maxV = rtu_GPID_T_filt_d;
1146 }
1147
1148 localB->MinMax1 = maxV;
1149
1150 /* End of MinMax: '<S115>/MinMax1' */
1151
1152 /* Saturate: '<S115>/Saturation' */
1153 maxV = localB->MinMax1;
1154 u1 = localP->Saturation_LowerSat;
1155 u2 = localP->Saturation_UpperSat;
1156 if (maxV > u2) {
1157 localB->Saturation = u2;
1158 } else if (maxV < u1) {
1159 localB->Saturation = u1;
1160 } else {
1161 localB->Saturation = maxV;
1162 }
1163
1164 /* End of Saturate: '<S115>/Saturation' */
1165
1166 /* Product: '<S115>/Divide' */
1167 localB->Divide = rtu_GPID_dT / localB->Saturation;
1168
1169 /* Product: '<S115>/Product2' */
1170 localB->Product2 = rtu_GPID_control_error * localB->Divide;
1171
1172 /* Sum: '<S115>/Subtract1' incorporates:
1173 * Constant: '<S115>/Constant1'
1174 */
1175 localB->Subtract1 = localP->Constant1_Value - localB->Divide;
1176
1177 /* UnitDelay: '<S115>/Unit_Delay2' */
1178 localB->Unit_Delay2 = localDW->Unit_Delay2_DSTATE;
1179
1180 /* Product: '<S115>/Product1' */
1181 localB->Product1 = localB->Subtract1 * localB->Unit_Delay2;
1182
1183 /* Sum: '<S115>/Add1' */
1184 localB->Add1 = localB->Product2 + localB->Product1;
1185
1186 /* Outputs for Atomic SubSystem: '<S115>/If_Then_Else' */
1187 L4_MABX_If_Then_Else(localB->LogicalOperator, rtu_GPID_control_error,
1188 localB->Add1, &localB->If_Then_Else);
1189
1190 /* End of Outputs for SubSystem: '<S115>/If_Then_Else' */
1191
1192 /* Product: '<S110>/Divide' */
1193 localB->Divide_k = localB->If_Then_Else.Switch / rtu_GPID_dT * rtu_GPID_Kd;
1194
1195 /* UnitDelay: '<S116>/FixPt Unit Delay2' */
1196 localB->FixPtUnitDelay2 = localDW->FixPtUnitDelay2_DSTATE;
1197
1198 /* Logic: '<S116>/FixPt Logical Operator' */
1199 localB->FixPtLogicalOperator = (uint8_T)(rtu_F_GPID_reset_gov ||
1200 (localB->FixPtUnitDelay2 != 0));
1201
1202 /* UnitDelay: '<S116>/FixPt Unit Delay1' */
1203 localB->Xold = localDW->FixPtUnitDelay1_DSTATE;
1204
1205 /* Switch: '<S116>/Init' */
1206 if (localB->FixPtLogicalOperator != 0) {
1207 localB->Init = localB->Divide_k;
1208 } else {
1209 localB->Init = localB->Xold;
1210 }
1211
1212 /* End of Switch: '<S116>/Init' */
1213
1214 /* Sum: '<S110>/Subtract' */
1215 localB->Subtract = localB->Divide_k - localB->Init;
1216
1217 /* Switch: '<S116>/Reset' */
1218 localB->Xnew = localB->Divide_k;
1219 } else {
1220 if (localDW->Calculate_D_term_MODE) {
1221 L4_Calculate_D_term_Disable(localB, localDW, localP);
1222 }
1223 }
1224
1225 /* End of Outputs for SubSystem: '<S106>/Calculate_D_term' */
1226}
1227
1228/*
1229 * Update for enable system:
1230 * '<S106>/Calculate_D_term'
1231 * '<S144>/Calculate_D_term'
1232 * '<S238>/Calculate_D_term'
1233 */
1234void L4__Calculate_D_term_Update(B_Calculate_D_term_L4_MABX_T *localB,
1235 DW_Calculate_D_term_L4_MABX_T *localDW, P_Calculate_D_term_L4_MABX_T *localP)
1236{
1237 /* Update for Enabled SubSystem: '<S106>/Calculate_D_term' incorporates:
1238 * EnablePort: '<S110>/Enable'
1239 */
1240 if (localDW->Calculate_D_term_MODE) {
1241 /* Update for UnitDelay: '<S115>/Unit_Delay1' incorporates:
1242 * Constant: '<S115>/Constant'
1243 */
1244 localDW->Unit_Delay1_DSTATE = localP->Constant_Value;
1245
1246 /* Update for UnitDelay: '<S115>/Unit_Delay2' */
1247 localDW->Unit_Delay2_DSTATE = localB->If_Then_Else.Switch;
1248
1249 /* Update for UnitDelay: '<S116>/FixPt Unit Delay2' incorporates:
1250 * Constant: '<S116>/FixPt Constant'
1251 */
1252 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtConstant_Value;
1253
1254 /* Update for UnitDelay: '<S116>/FixPt Unit Delay1' */
1255 localDW->FixPtUnitDelay1_DSTATE = localB->Xnew;
1256 }
1257
1258 /* End of Update for SubSystem: '<S106>/Calculate_D_term' */
1259}
1260
1261/*
1262 * Output and update for atomic system:
1263 * '<S120>/If_Then_Else3'
1264 * '<S158>/If_Then_Else3'
1265 * '<S252>/If_Then_Else3'
1266 * '<S452>/If_Then_Else'
1267 * '<S1043>/If_Then_Else'
1268 */
1269void L4_MABX_If_Then_Else3(boolean_T rtu_If, boolean_T rtu_Then, boolean_T
1270 rtu_Else, B_If_Then_Else_L4_MABX_c_T *localB)
1271{
1272 /* Switch: '<S128>/Switch' */
1273 if (rtu_If) {
1274 localB->Switch = rtu_Then;
1275 } else {
1276 localB->Switch = rtu_Else;
1277 }
1278
1279 /* End of Switch: '<S128>/Switch' */
1280}
1281
1282/*
1283 * System initialize for enable system:
1284 * '<S106>/Calculate_I_term'
1285 * '<S144>/Calculate_I_term'
1286 * '<S238>/Calculate_I_term'
1287 */
1288void L4_MA_Calculate_I_term_Init(B_Calculate_I_term_L4_MABX_T *localB,
1289 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1290{
1291 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay2' */
1292 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1293
1294 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay1' */
1295 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1296
1297 /* InitializeConditions for UnitDelay: '<S111>/Unit_Delay' */
1298 localDW->Unit_Delay_DSTATE = localP->Unit_Delay_InitialCondition;
1299
1300 /* SystemInitialize for Enabled SubSystem: '<S111>/Initialize_integral_term' */
1301 /* SystemInitialize for Outport: '<S119>/GPID_i_sum_error_init' */
1302 localB->Subtract2 = localP->GPID_i_sum_error_init_Y0;
1303
1304 /* End of SystemInitialize for SubSystem: '<S111>/Initialize_integral_term' */
1305
1306 /* SystemInitialize for Outport: '<S111>/GPID_i_term' */
1307 localB->If_Then_Else.Switch = localP->GPID_i_term_Y0;
1308
1309 /* SystemInitialize for Outport: '<S111>/F_GPID_hold_i_term' */
1310 localB->LogicalOperator2 = localP->F_GPID_hold_i_term_Y0;
1311}
1312
1313/*
1314 * System reset for enable system:
1315 * '<S106>/Calculate_I_term'
1316 * '<S144>/Calculate_I_term'
1317 * '<S238>/Calculate_I_term'
1318 */
1319void L4_M_Calculate_I_term_Reset(DW_Calculate_I_term_L4_MABX_T *localDW,
1320 P_Calculate_I_term_L4_MABX_T *localP)
1321{
1322 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay2' */
1323 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtUnitDelay2_InitialConditio;
1324
1325 /* InitializeConditions for UnitDelay: '<S122>/FixPt Unit Delay1' */
1326 localDW->FixPtUnitDelay1_DSTATE = localP->FixPtUnitDelay1_InitialConditio;
1327
1328 /* InitializeConditions for UnitDelay: '<S111>/Unit_Delay' */
1329 localDW->Unit_Delay_DSTATE = localP->Unit_Delay_InitialCondition;
1330}
1331
1332/*
1333 * Disable for enable system:
1334 * '<S106>/Calculate_I_term'
1335 * '<S144>/Calculate_I_term'
1336 * '<S238>/Calculate_I_term'
1337 */
1338void L4_Calculate_I_term_Disable(B_Calculate_I_term_L4_MABX_T *localB,
1339 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1340{
1341 /* Disable for Outport: '<S111>/GPID_i_term' */
1342 localB->If_Then_Else.Switch = localP->GPID_i_term_Y0;
1343
1344 /* Disable for Outport: '<S111>/F_GPID_hold_i_term' */
1345 localB->LogicalOperator2 = localP->F_GPID_hold_i_term_Y0;
1346 localDW->Calculate_I_term_MODE = false;
1347}
1348
1349/*
1350 * Start for enable system:
1351 * '<S106>/Calculate_I_term'
1352 * '<S144>/Calculate_I_term'
1353 * '<S238>/Calculate_I_term'
1354 */
1355void L4_M_Calculate_I_term_Start(DW_Calculate_I_term_L4_MABX_T *localDW)
1356{
1357 localDW->Calculate_I_term_MODE = false;
1358}
1359
1360/*
1361 * Outputs for enable system:
1362 * '<S106>/Calculate_I_term'
1363 * '<S144>/Calculate_I_term'
1364 * '<S238>/Calculate_I_term'
1365 */
1366void L4_MABX_Calculate_I_term(boolean_T rtu_Enable, real_T rtu_GPID_p_term,
1367 real_T rtu_GPID_Ki, real_T rtu_GPID_actual_system_output, real_T
1368 rtu_GPID_control_error, boolean_T rtu_F_GPID_reset_gov, real_T rtu_GPID_dT,
1369 real_T rtu_GPID_feed_forward, boolean_T rtu_F_GPID_aw_cond_integration, real_T
1370 rtu_GPID_aw_hysteresis, boolean_T rtu_F_GPID_aw_hold_i_term, real_T
1371 rtu_GPID_output_unlim_prev, B_Calculate_I_term_L4_MABX_T *localB,
1372 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1373{
1374 /* Outputs for Enabled SubSystem: '<S106>/Calculate_I_term' incorporates:
1375 * EnablePort: '<S111>/Enable'
1376 */
1377 if (rtu_Enable) {
1378 if (!localDW->Calculate_I_term_MODE) {
1379 L4_M_Calculate_I_term_Reset(localDW, localP);
1380 localDW->Calculate_I_term_MODE = true;
1381 }
1382
1383 /* Outputs for Enabled SubSystem: '<S111>/Initialize_integral_term' incorporates:
1384 * EnablePort: '<S119>/Enable'
1385 */
1386 if (rtu_F_GPID_reset_gov) {
1387 /* Product: '<S119>/Product' */
1388 localB->Product_j = rtu_GPID_Ki * rtu_GPID_dT * rtu_GPID_control_error;
1389
1390 /* Sum: '<S119>/Subtract' */
1391 localB->Subtract_g = rtu_GPID_actual_system_output - rtu_GPID_feed_forward;
1392
1393 /* Sum: '<S119>/Subtract1' */
1394 localB->Subtract1_k = localB->Subtract_g - rtu_GPID_p_term;
1395
1396 /* Sum: '<S119>/Subtract2' */
1397 localB->Subtract2 = localB->Subtract1_k - localB->Product_j;
1398 }
1399
1400 /* End of Outputs for SubSystem: '<S111>/Initialize_integral_term' */
1401
1402 /* UnitDelay: '<S122>/FixPt Unit Delay2' */
1403 localB->FixPtUnitDelay2 = localDW->FixPtUnitDelay2_DSTATE;
1404
1405 /* Logic: '<S122>/FixPt Logical Operator' */
1406 localB->FixPtLogicalOperator = (uint8_T)(rtu_F_GPID_reset_gov ||
1407 (localB->FixPtUnitDelay2 != 0));
1408
1409 /* UnitDelay: '<S122>/FixPt Unit Delay1' */
1410 localB->Xold = localDW->FixPtUnitDelay1_DSTATE;
1411
1412 /* Switch: '<S122>/Init' */
1413 if (localB->FixPtLogicalOperator != 0) {
1414 localB->Init = localB->Subtract2;
1415 } else {
1416 localB->Init = localB->Xold;
1417 }
1418
1419 /* End of Switch: '<S122>/Init' */
1420
1421 /* Product: '<S118>/Product1' */
1422 localB->Product1 = rtu_GPID_Ki * rtu_GPID_control_error * rtu_GPID_dT;
1423
1424 /* Sum: '<S118>/Add' */
1425 localB->Add = localB->Init + localB->Product1;
1426
1427 /* UnitDelay: '<S111>/Unit_Delay' */
1428 localB->Unit_Delay = localDW->Unit_Delay_DSTATE;
1429
1430 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else' */
1431
1432 /* Constant: '<S120>/Constant' */
1433 L4_MABX_If_Then_Else(rtu_F_GPID_reset_gov, localP->Constant_Value,
1434 localB->Unit_Delay, &localB->If_Then_Else_c);
1435
1436 /* End of Outputs for SubSystem: '<S120>/If_Then_Else' */
1437
1438 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else2' */
1439 L4_MABX_If_Then_Else(rtu_F_GPID_reset_gov, rtu_GPID_actual_system_output,
1440 rtu_GPID_output_unlim_prev, &localB->If_Then_Else2);
1441
1442 /* End of Outputs for SubSystem: '<S120>/If_Then_Else2' */
1443
1444 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else1' */
1445 L4_MABX_If_Then_Else(rtu_F_GPID_aw_cond_integration,
1446 localB->If_Then_Else_c.Switch,
1447 localB->If_Then_Else2.Switch, &localB->If_Then_Else1);
1448
1449 /* End of Outputs for SubSystem: '<S120>/If_Then_Else1' */
1450
1451 /* Product: '<S120>/Product' */
1452 localB->Product = rtu_GPID_Ki * rtu_GPID_control_error *
1453 localB->If_Then_Else1.Switch;
1454
1455 /* RelationalOperator: '<S123>/Compare' incorporates:
1456 * Constant: '<S123>/Constant'
1457 */
1458 localB->Compare = (localB->Product > localP->Constant_Value_p);
1459
1460 /* RelationalOperator: '<S124>/Compare' incorporates:
1461 * Constant: '<S124>/Constant'
1462 */
1463 localB->Compare_n = (localB->Unit_Delay >= localP->Constant_Value_b);
1464
1465 /* Sum: '<S120>/Subtract' */
1466 localB->Subtract = localB->If_Then_Else2.Switch -
1467 rtu_GPID_actual_system_output;
1468
1469 /* RelationalOperator: '<S120>/Relational Operator1' */
1470 localB->RelationalOperator1 = (localB->Subtract > rtu_GPID_aw_hysteresis);
1471
1472 /* Sum: '<S120>/Subtract1' */
1473 localB->Subtract1 = rtu_GPID_actual_system_output -
1474 localB->If_Then_Else2.Switch;
1475
1476 /* RelationalOperator: '<S120>/Relational Operator2' */
1477 localB->RelationalOperator2 = (localB->Subtract1 > rtu_GPID_aw_hysteresis);
1478
1479 /* Outputs for Atomic SubSystem: '<S120>/If_Then_Else3' */
1480 L4_MABX_If_Then_Else3(localB->Compare_n, localB->RelationalOperator1,
1481 localB->RelationalOperator2, &localB->If_Then_Else3);
1482
1483 /* End of Outputs for SubSystem: '<S120>/If_Then_Else3' */
1484
1485 /* Logic: '<S120>/Logical Operator1' */
1486 localB->LogicalOperator1 = (localB->Compare && localB->If_Then_Else3.Switch);
1487
1488 /* Logic: '<S120>/Logical Operator2' */
1489 localB->LogicalOperator2 = (localB->LogicalOperator1 ||
1490 rtu_F_GPID_aw_hold_i_term);
1491
1492 /* Outputs for Atomic SubSystem: '<S118>/If_Then_Else' */
1493 L4_MABX_If_Then_Else(localB->LogicalOperator2, localB->Init, localB->Add,
1494 &localB->If_Then_Else);
1495
1496 /* End of Outputs for SubSystem: '<S118>/If_Then_Else' */
1497
1498 /* Switch: '<S122>/Reset' */
1499 if (rtu_F_GPID_reset_gov) {
1500 localB->Xnew = localB->Subtract2;
1501 } else {
1502 localB->Xnew = localB->If_Then_Else.Switch;
1503 }
1504
1505 /* End of Switch: '<S122>/Reset' */
1506 } else {
1507 if (localDW->Calculate_I_term_MODE) {
1508 L4_Calculate_I_term_Disable(localB, localDW, localP);
1509 }
1510 }
1511
1512 /* End of Outputs for SubSystem: '<S106>/Calculate_I_term' */
1513}
1514
1515/*
1516 * Update for enable system:
1517 * '<S106>/Calculate_I_term'
1518 * '<S144>/Calculate_I_term'
1519 * '<S238>/Calculate_I_term'
1520 */
1521void L4__Calculate_I_term_Update(B_Calculate_I_term_L4_MABX_T *localB,
1522 DW_Calculate_I_term_L4_MABX_T *localDW, P_Calculate_I_term_L4_MABX_T *localP)
1523{
1524 /* Update for Enabled SubSystem: '<S106>/Calculate_I_term' incorporates:
1525 * EnablePort: '<S111>/Enable'
1526 */
1527 if (localDW->Calculate_I_term_MODE) {
1528 /* Update for UnitDelay: '<S122>/FixPt Unit Delay2' incorporates:
1529 * Constant: '<S122>/FixPt Constant'
1530 */
1531 localDW->FixPtUnitDelay2_DSTATE = localP->FixPtConstant_Value;
1532
1533 /* Update for UnitDelay: '<S122>/FixPt Unit Delay1' */
1534 localDW->FixPtUnitDelay1_DSTATE = localB->Xnew;
1535
1536 /* Update for UnitDelay: '<S111>/Unit_Delay' */
1537 localDW->Unit_Delay_DSTATE = localB->If_Then_Else.Switch;
1538 }
1539
1540 /* End of Update for SubSystem: '<S106>/Calculate_I_term' */
1541}
1542
1543/* Output and update for atomic system: '<S98>/If_Then_Else' */
1544void L4_MABX_If_Then_Else_l(boolean_T rtu_If, boolean_T rtu_Then, boolean_T
1545 rtu_Else, B_If_Then_Else_L4_MABX_m_T *localB)
1546{
1547 /* Switch: '<S176>/Switch' */
1548 if (rtu_If) {
1549 localB->Switch = rtu_Then;
1550 } else {
1551 localB->Switch = rtu_Else;
1552 }
1553
1554 /* End of Switch: '<S176>/Switch' */
1555}
1556
1557/*
1558 * Output and update for atomic system:
1559 * '<S177>/If_Then_Else'
1560 * '<S177>/If_Then_Else1'
1561 * '<S178>/If_Then_Else'
1562 * '<S178>/If_Then_Else1'
1563 * '<S274>/If_Then_Else'
1564 * '<S274>/If_Then_Else1'
1565 * '<S347>/If_Then_Else'
1566 * '<S344>/If_Then_Else'
1567 * '<S353>/If_Then_Else'
1568 * '<S81>/If_Then_Else'
1569 * '<S980>/If_Then_Else1'
1570 */
1571void L4_MABX_If_Then_Else_g(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Else,
1572 B_If_Then_Else_L4_MABX_k_T *localB)
1573{
1574 /* Switch: '<S179>/Switch' */
1575 if (rtu_If) {
1576 localB->Switch = rtu_Then;
1577 } else {
1578 localB->Switch = rtu_Else;
1579 }
1580
1581 /* End of Switch: '<S179>/Switch' */
1582}
1583
1584/* Output and update for atomic system: '<S299>/If_Then_Else' */
1585void L4_MABX_If_Then_Else_c(real_T rtu_If, real_T rtu_Then, real_T rtu_Else,
1586 B_If_Then_Else_L4_MABX_mf_T *localB)
1587{
1588 /* Switch: '<S307>/Switch' */
1589 if (rtu_If != 0.0) {
1590 localB->Switch = rtu_Then;
1591 } else {
1592 localB->Switch = rtu_Else;
1593 }
1594
1595 /* End of Switch: '<S307>/Switch' */
1596}
1597
1598/* Output and update for atomic system: '<S337>/If_Then_Else' */
1599void L4_MABX_If_Then_Else_m(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Then_l,
1600 real_T rtu_Then_f, real_T rtu_Else, real_T rtu_Else_i, real_T rtu_Else_k,
1601 B_If_Then_Else_L4_MABX_h_T *localB)
1602{
1603 /* Switch: '<S339>/Switch' */
1604 if (rtu_If) {
1605 localB->Vehicle_speed_target = rtu_Then;
1606 localB->Vehicle_speed = rtu_Then_l;
1607 localB->Distance_m = rtu_Then_f;
1608 } else {
1609 localB->Vehicle_speed_target = rtu_Else;
1610 localB->Vehicle_speed = rtu_Else_i;
1611 localB->Distance_m = rtu_Else_k;
1612 }
1613
1614 /* End of Switch: '<S339>/Switch' */
1615}
1616
1617/* System initialize for function-call system: '<S386>/Background_Task' */
1618void L4_MAB_Background_Task_Init(void)
1619{
1620 /* InitializeConditions for S-Function (dsa_tcpip_bkg_sfcn): '<S395>/dsa_tcpip_bkg_sfcn' */
1621 /* Level2 S-Function Block: '<S395>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1622 {
1623 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1624 sfcnInitializeConditions(rts);
1625 if (ssGetErrorStatus(rts) != (NULL))
1626 return;
1627 }
1628}
1629
1630/* System reset for function-call system: '<S386>/Background_Task' */
1631void L4_MA_Background_Task_Reset(void)
1632{
1633 /* InitializeConditions for S-Function (dsa_tcpip_bkg_sfcn): '<S395>/dsa_tcpip_bkg_sfcn' */
1634 /* Level2 S-Function Block: '<S395>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1635 {
1636 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1637 sfcnInitializeConditions(rts);
1638 if (ssGetErrorStatus(rts) != (NULL))
1639 return;
1640 }
1641}
1642
1643/* Start for function-call system: '<S386>/Background_Task' */
1644void L4_MA_Background_Task_Start(void)
1645{
1646 /* Start for S-Function (dsa_tcpip_bkg_sfcn): '<S395>/dsa_tcpip_bkg_sfcn' */
1647 /* Level2 S-Function Block: '<S395>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1648 {
1649 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1650 sfcnStart(rts);
1651 if (ssGetErrorStatus(rts) != (NULL))
1652 return;
1653 }
1654}
1655
1656/* Output and update for function-call system: '<S386>/Background_Task' */
1657void L4_MABX_Background_Task(void)
1658{
1659 /* S-Function (dsa_tcpip_bkg_sfcn): '<S395>/dsa_tcpip_bkg_sfcn' */
1660
1661 /* Level2 S-Function Block: '<S395>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1662 {
1663 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1664 sfcnOutputs(rts,9);
1665 }
1666}
1667
1668/* Termination for function-call system: '<S386>/Background_Task' */
1669void L4_MAB_Background_Task_Term(void)
1670{
1671 /* Terminate for S-Function (dsa_tcpip_bkg_sfcn): '<S395>/dsa_tcpip_bkg_sfcn' */
1672 /* Level2 S-Function Block: '<S395>/dsa_tcpip_bkg_sfcn' (dsa_tcpip_bkg_sfcn) */
1673 {
1674 SimStruct *rts = L4_MABX_M->childSfunctions[0];
1675 sfcnTerminate(rts);
1676 }
1677}
1678
1679/* System initialize for function-call system: '<S386>/IRQ_Level_2_SW_INT' */
1680void L4__IRQ_Level_2_SW_INT_Init(void)
1681{
1682 /* InitializeConditions for S-Function (dsa_tcpip_irq_l2_sfcn): '<S396>/dsa_tcpip_irq_l2_sfcn' */
1683 /* Level2 S-Function Block: '<S396>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1684 {
1685 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1686 sfcnInitializeConditions(rts);
1687 if (ssGetErrorStatus(rts) != (NULL))
1688 return;
1689 }
1690}
1691
1692/* System reset for function-call system: '<S386>/IRQ_Level_2_SW_INT' */
1693void L4_IRQ_Level_2_SW_INT_Reset(void)
1694{
1695 /* InitializeConditions for S-Function (dsa_tcpip_irq_l2_sfcn): '<S396>/dsa_tcpip_irq_l2_sfcn' */
1696 /* Level2 S-Function Block: '<S396>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1697 {
1698 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1699 sfcnInitializeConditions(rts);
1700 if (ssGetErrorStatus(rts) != (NULL))
1701 return;
1702 }
1703}
1704
1705/* Start for function-call system: '<S386>/IRQ_Level_2_SW_INT' */
1706void L4_IRQ_Level_2_SW_INT_Start(void)
1707{
1708 /* Start for S-Function (dsa_tcpip_irq_l2_sfcn): '<S396>/dsa_tcpip_irq_l2_sfcn' */
1709 /* Level2 S-Function Block: '<S396>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1710 {
1711 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1712 sfcnStart(rts);
1713 if (ssGetErrorStatus(rts) != (NULL))
1714 return;
1715 }
1716}
1717
1718/* Output and update for function-call system: '<S386>/IRQ_Level_2_SW_INT' */
1719void L4_MABX_IRQ_Level_2_SW_INT(void)
1720{
1721 /* S-Function (dsa_tcpip_irq_l2_sfcn): '<S396>/dsa_tcpip_irq_l2_sfcn' */
1722
1723 /* Level2 S-Function Block: '<S396>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1724 {
1725 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1726 sfcnOutputs(rts,10);
1727 }
1728}
1729
1730/* Termination for function-call system: '<S386>/IRQ_Level_2_SW_INT' */
1731void L4__IRQ_Level_2_SW_INT_Term(void)
1732{
1733 /* Terminate for S-Function (dsa_tcpip_irq_l2_sfcn): '<S396>/dsa_tcpip_irq_l2_sfcn' */
1734 /* Level2 S-Function Block: '<S396>/dsa_tcpip_irq_l2_sfcn' (dsa_tcpip_irq_l2_sfcn) */
1735 {
1736 SimStruct *rts = L4_MABX_M->childSfunctions[1];
1737 sfcnTerminate(rts);
1738 }
1739}
1740
1741/* System initialize for function-call system: '<S397>/Tcp Input Processing' */
1742void L4__TcpInputProcessing_Init(void)
1743{
1744 /* SystemInitialize for S-Function (rti_commonblock): '<S399>/S-Function1' incorporates:
1745 * SubSystem: '<S386>/IRQ_Level_2_SW_INT'
1746 */
1747 L4__IRQ_Level_2_SW_INT_Init();
1748
1749 /* End of SystemInitialize for S-Function (rti_commonblock): '<S399>/S-Function1' */
1750}
1751
1752/* System reset for function-call system: '<S397>/Tcp Input Processing' */
1753void L4_TcpInputProcessing_Reset(void)
1754{
1755 /* SystemReset for S-Function (rti_commonblock): '<S399>/S-Function1' incorporates:
1756 * SubSystem: '<S386>/IRQ_Level_2_SW_INT'
1757 */
1758 L4_IRQ_Level_2_SW_INT_Reset();
1759
1760 /* End of SystemReset for S-Function (rti_commonblock): '<S399>/S-Function1' */
1761}
1762
1763/* Start for function-call system: '<S397>/Tcp Input Processing' */
1764void L4_TcpInputProcessing_Start(void)
1765{
1766 /* Start for S-Function (rti_commonblock): '<S399>/S-Function1' incorporates:
1767 * SubSystem: '<S386>/IRQ_Level_2_SW_INT'
1768 */
1769 L4_IRQ_Level_2_SW_INT_Start();
1770
1771 /* End of Start for S-Function (rti_commonblock): '<S399>/S-Function1' */
1772}
1773
1774/* Output and update for function-call system: '<S397>/Tcp Input Processing' */
1775void L4_MABX_TcpInputProcessing(void)
1776{
1777 /* S-Function (rti_commonblock): '<S399>/S-Function1' */
1778
1779 /* This comment workarounds a code generation problem */
1780
1781 /* dSPACE Software Interrupt Block: <S397>/Tcp Input Processing */
1782 rtk_schedule_task(S_SOFTTASK,0);
1783
1784 /* End of Outputs for S-Function (rti_commonblock): '<S399>/S-Function1' */
1785}
1786
1787/*
1788 * Forced non-inlined (FNI) function call stub
1789 * for '<S397>/Tcp Input Processing'
1790 */
1791boolean_T L4_MABX_TcpInputProcessingFNI(RT_MODEL_L4_MABX_T *const L4_MABX_M,
1792 int_T controlPortIdx, int_T tid)
1793{
1794 L4_MABX_TcpInputProcessing();
1795 UNUSED_PARAMETER(L4_MABX_M);
1796 UNUSED_PARAMETER(controlPortIdx);
1797 UNUSED_PARAMETER(tid);
1798 return (1);
1799}
1800
1801/*
1802 * Forced non-inlined (FNI) function call stub
1803 * for '<S397>/Tcp Input Processing'
1804 */
1805boolean_T L4_TcpInputProcessing_ResetFNI(RT_MODEL_L4_MABX_T *const L4_MABX_M,
1806 int_T controlPortIdx, int_T tid)
1807{
1808 UNUSED_PARAMETER(L4_MABX_M);
1809 UNUSED_PARAMETER(controlPortIdx);
1810 UNUSED_PARAMETER(tid);
1811 return (1);
1812}
1813
1814/* Termination for function-call system: '<S397>/Tcp Input Processing' */
1815void L4__TcpInputProcessing_Term(void)
1816{
1817 /* Terminate for S-Function (rti_commonblock): '<S399>/S-Function1' incorporates:
1818 * SubSystem: '<S386>/IRQ_Level_2_SW_INT'
1819 */
1820 L4__IRQ_Level_2_SW_INT_Term();
1821
1822 /* End of Terminate for S-Function (rti_commonblock): '<S399>/S-Function1' */
1823}
1824
1825/* System initialize for function-call system: '<S386>/Interrupt_Task' */
1826void L4_MABX_Interrupt_Task_Init(void)
1827{
1828 /* InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1829
1830 /* Level2 S-Function Block: '<S397>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1831 {
1832 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1833 sfcnInitializeConditions(rts);
1834 if (ssGetErrorStatus(rts) != (NULL))
1835 return;
1836 }
1837
1838 /* End of InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1839
1840 /* SystemInitialize for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' incorporates:
1841 * SubSystem: '<S397>/Tcp Input Processing'
1842 */
1843 L4__TcpInputProcessing_Init();
1844
1845 /* End of SystemInitialize for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1846}
1847
1848/* System reset for function-call system: '<S386>/Interrupt_Task' */
1849void L4_MAB_Interrupt_Task_Reset(void)
1850{
1851 /* InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1852
1853 /* Level2 S-Function Block: '<S397>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1854 {
1855 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1856 sfcnInitializeConditions(rts);
1857 if (ssGetErrorStatus(rts) != (NULL))
1858 return;
1859 }
1860
1861 /* End of InitializeConditions for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1862
1863 /* SystemReset for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' incorporates:
1864 * SubSystem: '<S397>/Tcp Input Processing'
1865 */
1866 L4_TcpInputProcessing_Reset();
1867
1868 /* End of SystemReset for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1869}
1870
1871/* Start for function-call system: '<S386>/Interrupt_Task' */
1872void L4_MAB_Interrupt_Task_Start(void)
1873{
1874 /* Start for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' incorporates:
1875 * SubSystem: '<S397>/Tcp Input Processing'
1876 */
1877 L4_TcpInputProcessing_Start();
1878
1879 /* Level2 S-Function Block: '<S397>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1880 {
1881 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1882 sfcnStart(rts);
1883 if (ssGetErrorStatus(rts) != (NULL))
1884 return;
1885 }
1886
1887 /* End of Start for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1888}
1889
1890/* Output and update for function-call system: '<S386>/Interrupt_Task' */
1891void L4_MABX_Interrupt_Task(void)
1892{
1893 /* S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1894
1895 /* Level2 S-Function Block: '<S397>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1896 {
1897 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1898 sfcnOutputs(rts,11);
1899 }
1900
1901 /* End of Outputs for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1902}
1903
1904/* Termination for function-call system: '<S386>/Interrupt_Task' */
1905void L4_MABX_Interrupt_Task_Term(void)
1906{
1907 /* Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1908
1909 /* Level2 S-Function Block: '<S397>/dsa_tcpip_irq_l1_sfcn' (dsa_tcpip_irq_l1_sfcn) */
1910 {
1911 SimStruct *rts = L4_MABX_M->childSfunctions[2];
1912 sfcnTerminate(rts);
1913 }
1914
1915 /* End of Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1916
1917 /* Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' incorporates:
1918 * SubSystem: '<S397>/Tcp Input Processing'
1919 */
1920 L4__TcpInputProcessing_Term();
1921
1922 /* End of Terminate for S-Function (dsa_tcpip_irq_l1_sfcn): '<S397>/dsa_tcpip_irq_l1_sfcn' */
1923}
1924
1925/* Output and update for atomic system: '<S726>/If_Then_Else' */
1926void L4_MABX_If_Then_Else_e(boolean_T rtu_If, real_T rtu_Then, real_T rtu_Else)
1927{
1928 /* Switch: '<S731>/Switch' */
1929 if (rtu_If) {
1930 Pedal_pwm_position = rtu_Then;
1931 } else {
1932 Pedal_pwm_position = rtu_Else;
1933 }
1934
1935 /* End of Switch: '<S731>/Switch' */
1936}
1937
1938/* System initialize for function-call system: '<S403>/IncrementTimer' */
1939void L4_MABX_IncrementTimer_Init(void)
1940{
1941 /* InitializeConditions for UnitDelay: '<S813>/Unit_Delay' */
1942 L4_MABX_DW.Unit_Delay_DSTATE_d = L4_MABX_P.Unit_Delay_InitialCondition_g;
1943
1944 /* SystemInitialize for Outport: '<S813>/Out1' */
1945 L4_MABX_B.Add = L4_MABX_P.Out1_Y0_d;
1946}
1947
1948/* System reset for function-call system: '<S403>/IncrementTimer' */
1949void L4_MAB_IncrementTimer_Reset(void)
1950{
1951 /* InitializeConditions for UnitDelay: '<S813>/Unit_Delay' */
1952 L4_MABX_DW.Unit_Delay_DSTATE_d = L4_MABX_P.Unit_Delay_InitialCondition_g;
1953}
1954
1955/* Output and update for function-call system: '<S403>/IncrementTimer' */
1956void L4_MABX_IncrementTimer(void)
1957{
1958 /* UnitDelay: '<S813>/Unit_Delay' */
1959 L4_MABX_B.Unit_Delay_j = L4_MABX_DW.Unit_Delay_DSTATE_d;
1960
1961 /* Sum: '<S813>/Add' incorporates:
1962 * Constant: '<S813>/Constant1'
1963 */
1964 L4_MABX_B.Add = L4_MABX_P.Constant1_Value_jk + L4_MABX_B.Unit_Delay_j;
1965
1966 /* Update for UnitDelay: '<S813>/Unit_Delay' */
1967 L4_MABX_DW.Unit_Delay_DSTATE_d = L4_MABX_B.Add;
1968}
1969
1970/*
1971 * Output and update for enable system:
1972 * '<S943>/ALL_CTRL_DISABLED'
1973 * '<S943>/DEFAULT_TRQ_CTRL_MODE'
1974 * '<S943>/EXT_TRQ_CTRL_MODE_A'
1975 * '<S943>/EXT_TRQ_CTRL_MODE_B'
1976 * '<S943>/EXT_TRQ_CTRL_MODE_C'
1977 */
1978void L4_MABX_ALL_CTRL_DISABLED(boolean_T rtu_Enable, int32_T *rty_Out1,
1979 P_ALL_CTRL_DISABLED_L4_MABX_T *localP)
1980{
1981 /* Outputs for Enabled SubSystem: '<S943>/ALL_CTRL_DISABLED' incorporates:
1982 * EnablePort: '<S958>/Enable'
1983 */
1984 if (rtu_Enable) {
1985 /* SignalConversion: '<S958>/OutportBufferForOut1' incorporates:
1986 * Constant: '<S958>/Constant'
1987 */
1988 *rty_Out1 = localP->Constant_Value;
1989 }
1990
1991 /* End of Outputs for SubSystem: '<S943>/ALL_CTRL_DISABLED' */
1992}
1993
1994/* Output and update for atomic system: '<S981>/If_Then_Else' */
1995void L4_MABX_If_Then_Else_mo(boolean_T rtu_If, real_T rtu_Then,
1996 ENUM_XBR_EBI_MODE_T rtu_Then_d, ENUM_XBR_PRIORITY_T rtu_Then_n,
1997 ENUM_XBR_CONTROL_MODE_T rtu_Then_m, ENUM_XBR_PASS_THROUGH_ACTIVE_T rtu_Then_mn,
1998 real_T rtu_Then_i, real_T rtu_Then_e, real_T rtu_Else, ENUM_XBR_EBI_MODE_T
1999 rtu_Else_a, ENUM_XBR_PRIORITY_T rtu_Else_c, ENUM_XBR_CONTROL_MODE_T
2000 rtu_Else_ce, ENUM_XBR_PASS_THROUGH_ACTIVE_T rtu_Else_a4, real_T rtu_Else_m,
2001 real_T rtu_Else_e, B_If_Then_Else_L4_MABX_i_T *localB)
2002{
2003 /* Switch: '<S1005>/Switch' */
2004 if (rtu_If) {
2005 localB->XBRExternalAccelDemand = rtu_Then;
2006 localB->XBREnduranceBrakeIntegrationMod = rtu_Then_d;
2007 localB->XBRPriority = rtu_Then_n;
2008 localB->XBRControlMode = rtu_Then_m;
2009 localB->XBRPassThroughActive = rtu_Then_mn;
2010 localB->XBRUrgency = rtu_Then_i;
2011 localB->XBRPassThroughEnabled = rtu_Then_e;
2012 } else {
2013 localB->XBRExternalAccelDemand = rtu_Else;
2014 localB->XBREnduranceBrakeIntegrationMod = rtu_Else_a;
2015 localB->XBRPriority = rtu_Else_c;
2016 localB->XBRControlMode = rtu_Else_ce;
2017 localB->XBRPassThroughActive = rtu_Else_a4;
2018 localB->XBRUrgency = rtu_Else_m;
2019 localB->XBRPassThroughEnabled = rtu_Else_e;
2020 }
2021
2022 /* End of Switch: '<S1005>/Switch' */
2023}
2024
2025static int32_T safe_cast_to_ENUM_XPR_CONTROL_M(int32_T input)
2026{
2027 int32_T y;
2028
2029 /* Initialize output value to default value for ENUM_XPR_CONTROL_MODE_T (NO_BRAKE_DEMAND) */
2030 y = 0;
2031 if (((input >= 0) && (input <= 3)) || ((input >= 13) && (input <= 15))) {
2032 /* Set output value to input value if it is a member of ENUM_XPR_CONTROL_MODE_T */
2033 y = input;
2034 }
2035
2036 return y;
2037}
2038
2039static int32_T safe_cast_to_ENUM_XPR_ERROR_STA(int32_T input)
2040{
2041 int32_T y;
2042
2043 /* Initialize output value to default value for ENUM_XPR_ERROR_STATE_T (XPR_OK) */
2044 y = 0;
2045 if ((input >= 0) && (input <= 3)) {
2046 /* Set output value to input value if it is a member of ENUM_XPR_ERROR_STATE_T */
2047 y = input;
2048 }
2049
2050 return y;
2051}
2052
2053/* Function for Chart: '<S205>/Relay_control_state_machine' */
2054static void L4_MABX_enter_atomic_INITIAL(void)
2055{
2056 /* Entry 'INITIAL': '<S212>:12' */
2057 L4_MABX_B.F_Ignition_relay_command_i = false;
2058 L4_MABX_B.F_Inverter_relay_command_p = false;
2059 L4_MABX_B.F_MABX_relay_command_n = false;
2060 L4_MABX_B.F_Sensor_relay_command_k = false;
2061 L4_MABX_DW.IGN_RELAY_ON_DELAY_SECS_APV =
2062 L4_MABX_B.TmpSignalConversionAtSFunctionI[0];
2063 L4_MABX_DW.INVERTER_RELAY_ON_DELAY_SECS_AP =
2064 L4_MABX_B.TmpSignalConversionAtSFunctionI[1];
2065 L4_MABX_DW.MABX_RELAY_ON_DELAY_SECS_APV =
2066 L4_MABX_B.TmpSignalConversionAtSFunctionI[2];
2067 L4_MABX_DW.SENSOR_RELAY_ON_DELAY_SECS_APV =
2068 L4_MABX_B.TmpSignalConversionAtSFunctionI[3];
2069 L4_MABX_DW.IGN_RELAY_OFF_DELAY_SECS_APV =
2070 L4_MABX_B.TmpSignalConversionAtSFunctio_k[0];
2071 L4_MABX_DW.INVERTER_RELAY_OFF_DELAY_SECS_A =
2072 L4_MABX_B.TmpSignalConversionAtSFunctio_k[1];
2073 L4_MABX_DW.MABX_RELAY_OFF_DELAY_SECS_APV =
2074 L4_MABX_B.TmpSignalConversionAtSFunctio_k[2];
2075 L4_MABX_DW.SENSOR_RELAY_OFF_DELAY_SECS_APV =
2076 L4_MABX_B.TmpSignalConversionAtSFunctio_k[3];
2077}
2078
2079real_T rt_atan2d_snf(real_T u0, real_T u1)
2080{
2081 real_T y;
2082 int32_T tmp;
2083 int32_T tmp_0;
2084 if (rtIsNaN(u0) || rtIsNaN(u1)) {
2085 y = (rtNaN);
2086 } else if (rtIsInf(u0) && rtIsInf(u1)) {
2087 if (u1 > 0.0) {
2088 tmp = 1;
2089 } else {
2090 tmp = -1;
2091 }
2092
2093 if (u0 > 0.0) {
2094 tmp_0 = 1;
2095 } else {
2096 tmp_0 = -1;
2097 }
2098
2099 y = atan2(tmp_0, tmp);
2100 } else if (u1 == 0.0) {
2101 if (u0 > 0.0) {
2102 y = RT_PI / 2.0;
2103 } else if (u0 < 0.0) {
2104 y = -(RT_PI / 2.0);
2105 } else {
2106 y = 0.0;
2107 }
2108 } else {
2109 y = atan2(u0, u1);
2110 }
2111
2112 return y;
2113}
2114
2115real_T rt_powd_snf(real_T u0, real_T u1)
2116{
2117 real_T y;
2118 real_T tmp;
2119 real_T tmp_0;
2120 if (rtIsNaN(u0) || rtIsNaN(u1)) {
2121 y = (rtNaN);
2122 } else {
2123 tmp = fabs(u0);
2124 tmp_0 = fabs(u1);
2125 if (rtIsInf(u1)) {
2126 if (tmp == 1.0) {
2127 y = 1.0;
2128 } else if (tmp > 1.0) {
2129 if (u1 > 0.0) {
2130 y = (rtInf);
2131 } else {
2132 y = 0.0;
2133 }
2134 } else if (u1 > 0.0) {
2135 y = 0.0;
2136 } else {
2137 y = (rtInf);
2138 }
2139 } else if (tmp_0 == 0.0) {
2140 y = 1.0;
2141 } else if (tmp_0 == 1.0) {
2142 if (u1 > 0.0) {
2143 y = u0;
2144 } else {
2145 y = 1.0 / u0;
2146 }
2147 } else if (u1 == 2.0) {
2148 y = u0 * u0;
2149 } else if ((u1 == 0.5) && (u0 >= 0.0)) {
2150 y = sqrt(u0);
2151 } else if ((u0 < 0.0) && (u1 > floor(u1))) {
2152 y = (rtNaN);
2153 } else {
2154 y = pow(u0, u1);
2155 }
2156 }
2157
2158 return y;
2159}
2160
2161/* Function for Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
2162static void L4_MABX_Calculate_abc(void)
2163{
2164 /* MATLAB Function 'Calculate_abc': '<S346>:158' */
2165 /* Graphical Function 'Calculate_abc': '<S346>:158' */
2166 /* '<S346>:160:1' */
2167 L4_MABX_DW.a = L4_MABX_DW.Jerk56 - L4_MABX_DW.Jerk12;
2168
2169 /* '<S346>:160:1' */
2170 L4_MABX_DW.b = ((L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.Jerk12 -
2171 L4_MABX_DW.AccelerationInitialLimited * L4_MABX_DW.Jerk56) -
2172 L4_MABX_DW.Jerk12 * L4_MABX_DW.Jerk56 * L4_MABX_DW.TimeFinal) *
2173 2.0;
2174
2175 /* '<S346>:160:3' */
2176 L4_MABX_DW.c = (2.0 * L4_MABX_DW.Jerk12 * L4_MABX_DW.Jerk56 *
2177 (L4_MABX_DW.VelocityFinalLimited -
2178 L4_MABX_DW.VelocityInitialLimited) +
2179 L4_MABX_DW.AccelerationInitialLimited *
2180 L4_MABX_DW.AccelerationInitialLimited * L4_MABX_DW.Jerk56) -
2181 L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.AccelerationFinalLimited *
2182 L4_MABX_DW.Jerk12;
2183}
2184
2185/* Function for Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
2186static void L4_MABX_CalculateAlternate_abc(void)
2187{
2188 /* MATLAB Function 'CalculateAlternate_abc': '<S346>:286' */
2189 /* Graphical Function 'CalculateAlternate_abc': '<S346>:286' */
2190 /* '<S346>:285:1' */
2191 L4_MABX_DW.a = 1.0;
2192
2193 /* '<S346>:285:1' */
2194 L4_MABX_DW.b = ((L4_MABX_DW.TimeFinal - 0.005) * L4_MABX_DW.Jerk56 -
2195 L4_MABX_DW.AccelerationFinalLimited) * 2.0;
2196
2197 /* '<S346>:285:3' */
2198 L4_MABX_DW.c = 2.0 * L4_MABX_DW.Jerk56 * (L4_MABX_DW.VelocityInitialLimited -
2199 L4_MABX_DW.VelocityFinalLimited) + L4_MABX_DW.AccelerationFinalLimited *
2200 L4_MABX_DW.AccelerationFinalLimited;
2201}
2202
2203/* Function for Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
2204static void L4_MABX_CalculateAcceleration34(void)
2205{
2206 real_T u;
2207 real_T u0;
2208 real_T u1;
2209
2210 /* MATLAB Function 'CalculateAcceleration34': '<S346>:167' */
2211 /* Graphical Function 'CalculateAcceleration34': '<S346>:167' */
2212 /* '<S346>:186:1' */
2213 /* '<S346>:186:5' */
2214 /* '<S346>:186:8' */
2215 u = L4_MABX_DW.Jerk12;
2216 if (u < 0.0) {
2217 u = -1.0;
2218 } else if (u > 0.0) {
2219 u = 1.0;
2220 } else if (u == 0.0) {
2221 u = 0.0;
2222 } else {
2223 u = (rtNaN);
2224 }
2225
2226 u0 = fabs(L4_MABX_DW.Jerk12);
2227 u1 = fabs(((((L4_MABX_DW.AccelerationInitialLimited *
2228 L4_MABX_DW.AccelerationFinalLimited -
2229 L4_MABX_DW.AccelerationInitialLimited * L4_MABX_DW.Jerk56 *
2230 L4_MABX_DW.TimeFinal) + (L4_MABX_DW.VelocityFinalLimited -
2231 L4_MABX_DW.VelocityInitialLimited) * L4_MABX_DW.Jerk56) * 2.0 -
2232 L4_MABX_DW.AccelerationInitialLimited *
2233 L4_MABX_DW.AccelerationInitialLimited) -
2234 L4_MABX_DW.AccelerationFinalLimited *
2235 L4_MABX_DW.AccelerationFinalLimited) /
2236 (((L4_MABX_DW.VelocityFinalLimited -
2237 L4_MABX_DW.VelocityInitialLimited) -
2238 L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.TimeFinal) * 2.0
2239 + L4_MABX_DW.TimeFinal * L4_MABX_DW.TimeFinal * L4_MABX_DW.Jerk56))
2240 + 0.001;
2241 if ((u0 > u1) || rtIsNaN(u1)) {
2242 u1 = u0;
2243 }
2244
2245 L4_MABX_DW.Jerk12 = u * u1;
2246
2247 /* '<S346>:186:11' */
2248 u1 = L4_MABX_DW.Jerk12;
2249 if ((10.0 < u1) || rtIsNaN(u1)) {
2250 u1 = 10.0;
2251 }
2252
2253 if ((-10.0 > u1) || rtIsNaN(u1)) {
2254 L4_MABX_DW.Jerk12 = -10.0;
2255 } else {
2256 L4_MABX_DW.Jerk12 = u1;
2257 }
2258
2259 /* '<S346>:186:11' */
2260 L4_MABX_Calculate_abc();
2261
2262 /* '<S346>:187:1' */
2263 if (fabs(L4_MABX_DW.a) < 0.01) {
2264 /* '<S346>:188:1' */
2265 L4_MABX_DW.Jerk12 = L4_MABX_DW.Jerk56;
2266
2267 /* '<S346>:188:1' */
2268 L4_MABX_Calculate_abc();
2269
2270 /* '<S346>:188:1' */
2271 L4_MABX_DW.Acceleration34 = -L4_MABX_DW.c / L4_MABX_DW.b;
2272
2273 /* '<S346>:188:2' */
2274 L4_MABX_DW.AlternateMethod = false;
2275 } else {
2276 /* '<S346>:224:1' */
2277 if (L4_MABX_DW.b * L4_MABX_DW.b <= 4.0 * L4_MABX_DW.a * L4_MABX_DW.c) {
2278 /* '<S346>:292:1' */
2279 L4_MABX_CalculateAlternate_abc();
2280
2281 /* '<S346>:292:1' */
2282 L4_MABX_DW.Acceleration34 = -L4_MABX_DW.b / (2.0 * L4_MABX_DW.a);
2283
2284 /* '<S346>:292:2' */
2285 L4_MABX_DW.AlternateMethod = true;
2286 } else {
2287 /* '<S346>:294:1' */
2288 L4_MABX_DW.Acceleration34 = (sqrt(L4_MABX_DW.b * L4_MABX_DW.b - 4.0 *
2289 L4_MABX_DW.a * L4_MABX_DW.c) + -L4_MABX_DW.b) / (2.0 * L4_MABX_DW.a);
2290
2291 /* '<S346>:294:2' */
2292 L4_MABX_DW.AlternateMethod = false;
2293 }
2294 }
2295}
2296
2297static int32_T safe_cast_to_ENUM_CAN_STATUS_DI(int32_T input)
2298{
2299 int32_T y;
2300
2301 /* Initialize output value to default value for ENUM_CAN_STATUS_DIAG_T (ACTIVE) */
2302 y = 0;
2303 if ((input >= 0) && (input <= 2)) {
2304 /* Set output value to input value if it is a member of ENUM_CAN_STATUS_DIAG_T */
2305 y = input;
2306 }
2307
2308 return y;
2309}
2310
2311/* Model output function for TID0 */
2312void L4_MABX_output0(void) /* Sample time: [0.01s, 0.0s] */
2313{
2314 int_T tid = 0;
2315 uint8_T starting_index;
2316 real_T AccelerationAverage;
2317 real_T DeltaTimeFinal;
2318 uint8_T j;
2319 real_T PositionFinalLimited;
2320 real_T Time56;
2321 real_T DeltaTime;
2322 uint32_T tmp;
2323 boolean_T zcEvent;
2324 int32_T i;
2325 uint32_T q0;
2326 uint16_T tmp_0;
2327 int8_T tmp_1;
2328
2329 /* Update the flag to indicate when data transfers from
2330 * Sample time: [0.01s, 0.0s] to Sample time: [0.02s, 0.0s] */
2331 L4_MABX_M->Timing.perTaskSampleHits[1] =
2332 (L4_MABX_M->Timing.RateInteraction.TID0_1 == 0);
2333 (L4_MABX_M->Timing.RateInteraction.TID0_1)++;
2334 if ((L4_MABX_M->Timing.RateInteraction.TID0_1) > 1) {
2335 L4_MABX_M->Timing.RateInteraction.TID0_1 = 0;
2336 }
2337
2338 /* Update the flag to indicate when data transfers from
2339 * Sample time: [0.01s, 0.0s] to Sample time: [0.05s, 0.0s] */
2340 L4_MABX_M->Timing.perTaskSampleHits[2] =
2341 (L4_MABX_M->Timing.RateInteraction.TID0_2 == 0);
2342 (L4_MABX_M->Timing.RateInteraction.TID0_2)++;
2343 if ((L4_MABX_M->Timing.RateInteraction.TID0_2) > 4) {
2344 L4_MABX_M->Timing.RateInteraction.TID0_2 = 0;
2345 }
2346
2347 /* Update the flag to indicate when data transfers from
2348 * Sample time: [0.01s, 0.0s] to Sample time: [0.1s, 0.0s] */
2349 L4_MABX_M->Timing.perTaskSampleHits[3] =
2350 (L4_MABX_M->Timing.RateInteraction.TID0_3 == 0);
2351 (L4_MABX_M->Timing.RateInteraction.TID0_3)++;
2352 if ((L4_MABX_M->Timing.RateInteraction.TID0_3) > 9) {
2353 L4_MABX_M->Timing.RateInteraction.TID0_3 = 0;
2354 }
2355
2356 /* Update the flag to indicate when data transfers from
2357 * Sample time: [0.01s, 0.0s] to Sample time: [1.0s, 0.0s] */
2358 L4_MABX_M->Timing.perTaskSampleHits[6] =
2359 (L4_MABX_M->Timing.RateInteraction.TID0_6 == 0);
2360 (L4_MABX_M->Timing.RateInteraction.TID0_6)++;
2361 if ((L4_MABX_M->Timing.RateInteraction.TID0_6) > 99) {
2362 L4_MABX_M->Timing.RateInteraction.TID0_6 = 0;
2363 }
2364
2365 /* Update the flag to indicate when data transfers from
2366 * Sample time: [0.01s, 0.0s] to Sample time: [5.0s, 0.0s] */
2367 L4_MABX_M->Timing.perTaskSampleHits[7] =
2368 (L4_MABX_M->Timing.RateInteraction.TID0_7 == 0);
2369 (L4_MABX_M->Timing.RateInteraction.TID0_7)++;
2370 if ((L4_MABX_M->Timing.RateInteraction.TID0_7) > 499) {
2371 L4_MABX_M->Timing.RateInteraction.TID0_7 = 0;
2372 }
2373
2374 /* Outputs for Enabled SubSystem: '<S483>/AIR1' incorporates:
2375 * EnablePort: '<S484>/Enable'
2376 */
2377 /* Constant: '<S411>/Constant' */
2378 if (L4_MABX_P.Constant_Value_ig) {
2379 /* S-Function (rti_commonblock): '<S484>/S-Function1' */
2380 /* This comment workarounds a code generation problem */
2381
2382 /* dSPACE RTICAN RX Message Block: "AIR1" Id:419343921 */
2383 {
2384 UInt32 *CAN_Msg;
2385 static dsfloat time_old = 0.0;
2386
2387 /* Read status and timestamp info (previous message) */
2388 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].timestamp !=
2389 time_old) {
2390 /* ... save timestamp info for the calculation of the RX status
2391 during the consecutive sample hit*/
2392 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].
2393 timestamp;
2394
2395 /* ... set the processed flag to one */
2396 L4_MABX_B.SFunction1_o9_ft = 1.0;
2397 L4_MABX_B.SFunction1_o10_fb = (real_T)
2398 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].timestamp;
2399 L4_MABX_B.SFunction1_o11_h = (real_T)
2400 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].deltatime;
2401 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEAE31].data;
2402
2403 /* Decode CAN message */
2404 {
2405 {
2406 rtican_Signal_t CAN_Sgn;
2407
2408 /* ...... "PneumaticSupplyPress" (0|8, standard signal, unsigned int, little endian) */
2409 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
2410 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2411 L4_MABX_B.SFunction1_o1_n4 = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2412
2413 /* ...... "ParkingAnd_orTrailerAirPress" (8|8, standard signal, unsigned int, little endian) */
2414 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
2415 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2416 L4_MABX_B.SFunction1_o2_p4 = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2417
2418 /* ...... "ServiceBrakeCircuit1AirPress" (16|8, standard signal, unsigned int, little endian) */
2419 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
2420 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2421 L4_MABX_B.SFunction1_o3_iv = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2422
2423 /* ...... "ServiceBrakeCircuit2AirPress" (24|8, standard signal, unsigned int, little endian) */
2424 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
2425 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2426 L4_MABX_B.SFunction1_o4_av = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2427
2428 /* ...... "AuxEquipmentSupplyPress" (32|8, standard signal, unsigned int, little endian) */
2429 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
2430 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2431 L4_MABX_B.SFunction1_o5_g = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2432
2433 /* ...... "AirSuspensionSupplyPress" (40|8, standard signal, unsigned int, little endian) */
2434 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
2435 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2436 L4_MABX_B.SFunction1_o6_dp = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2437
2438 /* ...... "AirCompressorStatus" (48|2, standard signal, unsigned int, little endian) */
2439 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
2440 CAN_Sgn.UnsignedSgn &= 0x00000003;
2441 L4_MABX_B.SFunction1_o7_o = ((real_T) CAN_Sgn.UnsignedSgn);
2442
2443 /* ...... "PowertrainCircuitAirSupplyPress" (56|8, standard signal, unsigned int, little endian) */
2444 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
2445 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2446 L4_MABX_B.SFunction1_o8_nj = 8 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2447 }
2448 }
2449 } else {
2450 /* set RX status to 0 because no new message has arrived */
2451 L4_MABX_B.SFunction1_o9_ft = 0.0;
2452 }
2453 }
2454 }
2455
2456 /* End of Constant: '<S411>/Constant' */
2457 /* End of Outputs for SubSystem: '<S483>/AIR1' */
2458
2459 /* Outputs for Enabled SubSystem: '<S485>/AMB' incorporates:
2460 * EnablePort: '<S486>/Enable'
2461 */
2462 /* Constant: '<S412>/Constant' */
2463 if (L4_MABX_P.Constant_Value_dz) {
2464 /* S-Function (rti_commonblock): '<S486>/S-Function1' */
2465 /* This comment workarounds a code generation problem */
2466
2467 /* dSPACE RTICAN RX Message Block: "AMB" Id:419362048 */
2468 {
2469 UInt32 *CAN_Msg;
2470 static dsfloat time_old = 0.0;
2471
2472 /* Read status and timestamp info (previous message) */
2473 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].timestamp !=
2474 time_old) {
2475 /* ... save timestamp info for the calculation of the RX status
2476 during the consecutive sample hit*/
2477 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].
2478 timestamp;
2479
2480 /* ... set the processed flag to one */
2481 L4_MABX_B.SFunction1_o6_fk = 1.0;
2482 L4_MABX_B.SFunction1_o7_kx = (real_T)
2483 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].timestamp;
2484 L4_MABX_B.SFunction1_o8_bj = (real_T)
2485 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].deltatime;
2486 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF500].data;
2487
2488 /* Decode CAN message */
2489 {
2490 {
2491 rtican_Signal_t CAN_Sgn;
2492
2493 /* ...... "BarometricPress" (0|8, standard signal, unsigned int, little endian) */
2494 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
2495 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2496 L4_MABX_B.SFunction1_o1_n = 0.5 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
2497
2498 /* ...... "CabInteriorTemp" (8|16, standard signal, unsigned int, little endian) */
2499 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
2500 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
2501 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
2502 L4_MABX_B.SFunction1_o2_cz = -273 + ( 0.03125 * ( ((real_T)
2503 CAN_Sgn.UnsignedSgn) ) );
2504
2505 /* ...... "AmbientAirTemp" (24|16, standard signal, unsigned int, little endian) */
2506 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
2507 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
2508 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
2509 L4_MABX_B.SFunction1_o3_fv = -273 + ( 0.03125 * ( ((real_T)
2510 CAN_Sgn.UnsignedSgn) ) );
2511
2512 /* ...... "EngAirIntakeTemp" (40|8, standard signal, unsigned int, little endian) */
2513 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
2514 CAN_Sgn.UnsignedSgn &= 0x000000FF;
2515 L4_MABX_B.SFunction1_o4_it = -40 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
2516
2517 /* ...... "RoadSurfaceTemp" (48|16, standard signal, unsigned int, little endian) */
2518 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
2519 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
2520 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
2521 L4_MABX_B.SFunction1_o5_h5 = -273 + ( 0.03125 * ( ((real_T)
2522 CAN_Sgn.UnsignedSgn) ) );
2523 }
2524 }
2525 } else {
2526 /* set RX status to 0 because no new message has arrived */
2527 L4_MABX_B.SFunction1_o6_fk = 0.0;
2528 }
2529 }
2530 }
2531
2532 /* End of Constant: '<S412>/Constant' */
2533 /* End of Outputs for SubSystem: '<S485>/AMB' */
2534
2535 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_1000ms' */
2536
2537 /* RateTransition: '<S835>/TmpRTBAtAIR1Inport1' */
2538 if (L4_MABX_M->Timing.RateInteraction.TID0_6 == 1) {
2539 L4_MABX_B.PneumaticSupplyPress = L4_MABX_B.SFunction1_o1_n4;
2540 L4_MABX_B.ParkingAnd_orTrailerAirPress = L4_MABX_B.SFunction1_o2_p4;
2541 L4_MABX_B.ServiceBrakeCircuit1AirPress = L4_MABX_B.SFunction1_o3_iv;
2542 L4_MABX_B.ServiceBrakeCircuit2AirPress = L4_MABX_B.SFunction1_o4_av;
2543 L4_MABX_B.AuxEquipmentSupplyPress = L4_MABX_B.SFunction1_o5_g;
2544 L4_MABX_B.AirSuspensionSupplyPress = L4_MABX_B.SFunction1_o6_dp;
2545 L4_MABX_B.AirCompressorStatus = L4_MABX_B.SFunction1_o7_o;
2546 L4_MABX_B.PowertrainCircuitAirSupplyPress = L4_MABX_B.SFunction1_o8_nj;
2547 L4_MABX_B.BarometricPress_c = L4_MABX_B.SFunction1_o1_n;
2548 L4_MABX_B.CabInteriorTemp = L4_MABX_B.SFunction1_o2_cz;
2549 L4_MABX_B.AmbientAirTemp_g = L4_MABX_B.SFunction1_o3_fv;
2550 L4_MABX_B.EngAirIntakeTemp = L4_MABX_B.SFunction1_o4_it;
2551 L4_MABX_B.RoadSurfaceTemp = L4_MABX_B.SFunction1_o5_h5;
2552 }
2553
2554 /* End of Outputs for SubSystem: '<S815>/CAN_TX_1000ms' */
2555
2556 /* S-Function (rti_commonblock): '<S720>/S-Function1' */
2557 /* This comment workarounds a code generation problem */
2558
2559 /* DataTypeConversion: '<S402>/EStopSwActive' */
2560 L4_MABX_B.EStopSwActive = L4_MABX_B.SFunction1_o;
2561
2562 /* Logic: '<S402>/Logical Operator1' */
2563 EStop = !L4_MABX_B.EStopSwActive;
2564
2565 /* S-Function (rti_commonblock): '<S719>/S-Function1' */
2566 /* This comment workarounds a code generation problem */
2567
2568 /* S-Function (sfix_bitop): '<S809>/Operator' */
2569 L4_MABX_B.Operator_gz = (L4_MABX_B.SFunction1_f &&
2570 (L4_MABX_P.Operator_BitMask_mq != 0));
2571
2572 /* DataTypeConversion: '<S809>/DataType' */
2573 L4_MABX_B.DataType_is = L4_MABX_B.Operator_gz;
2574
2575 /* Logic: '<S727>/Logical Operator' */
2576 L4_MABX_B.LogicalOperator = !L4_MABX_B.DataType_is;
2577
2578 /* S-Function (rti_commonblock): '<S722>/S-Function1' */
2579 /* This comment workarounds a code generation problem */
2580
2581 /* S-Function (sfix_bitop): '<S810>/Operator' */
2582 L4_MABX_B.Operator_aw = (L4_MABX_B.SFunction1_c &&
2583 (L4_MABX_P.Operator_BitMask_c5 != 0));
2584
2585 /* DataTypeConversion: '<S810>/DataType' */
2586 L4_MABX_B.DataType_g3 = L4_MABX_B.Operator_aw;
2587
2588 /* Logic: '<S727>/AND2' */
2589 L4_MABX_B.AND2 = (L4_MABX_B.LogicalOperator && L4_MABX_B.DataType_g3);
2590
2591 /* Chart: '<S811>/Chart' */
2592 /* Gateway: DIGITAL/Signal Check/RationalityCheck/Chart */
2593 /* During: DIGITAL/Signal Check/RationalityCheck/Chart */
2594 if (L4_MABX_DW.is_active_c5_SUB_ECU_L4_MABX_HW == 0U) {
2595 /* Entry: DIGITAL/Signal Check/RationalityCheck/Chart */
2596 L4_MABX_DW.is_active_c5_SUB_ECU_L4_MABX_HW = 1U;
2597
2598 /* Entry Internal: DIGITAL/Signal Check/RationalityCheck/Chart */
2599 /* Transition: '<S812>:6' */
2600 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_init_j;
2601
2602 /* Entry 'init': '<S812>:1' */
2603 L4_MABX_B.DiagPassed = false;
2604 } else {
2605 switch (L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf) {
2606 case L4_MABX_IN_DiagPassed:
2607 /* During 'DiagPassed': '<S812>:4' */
2608 break;
2609
2610 case L4_MABX_IN_SwitchOff:
2611 /* During 'SwitchOff': '<S812>:2' */
2612 if (L4_MABX_B.AND2) {
2613 /* Transition: '<S812>:8' */
2614 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_DiagPassed;
2615
2616 /* Entry 'DiagPassed': '<S812>:4' */
2617 L4_MABX_B.DiagPassed = true;
2618 }
2619 break;
2620
2621 case L4_MABX_IN_SwitchOn:
2622 /* During 'SwitchOn': '<S812>:3' */
2623 if (!L4_MABX_B.AND2) {
2624 /* Transition: '<S812>:9' */
2625 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SwitchOff;
2626 }
2627 break;
2628
2629 default:
2630 /* During 'init': '<S812>:1' */
2631 if (!L4_MABX_B.AND2) {
2632 /* Transition: '<S812>:5' */
2633 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SwitchOff;
2634 } else {
2635 /* Transition: '<S812>:7' */
2636 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SwitchOn;
2637 }
2638 break;
2639 }
2640 }
2641
2642 /* End of Chart: '<S811>/Chart' */
2643
2644 /* Switch: '<S727>/Switch' incorporates:
2645 * Constant: '<S727>/OverrideOperatorEnableSW_Default'
2646 */
2647 if (L4_MABX_B.DiagPassed) {
2648 EnableSw = L4_MABX_B.AND2;
2649 } else {
2650 EnableSw = L4_MABX_P.OverrideOperatorEnableSW_Defaul;
2651 }
2652
2653 /* End of Switch: '<S727>/Switch' */
2654
2655 /* S-Function (rti_commonblock): '<S724>/S-Function1' */
2656 /* This comment workarounds a code generation problem */
2657
2658 /* DataTypeConversion: '<S402>/Data Type Conversion2' */
2659 L4_MABX_B.Pedal_1_pwm_freq_raw_value = L4_MABX_B.SFunction1_o1;
2660
2661 /* RelationalOperator: '<S757>/min_relop' incorporates:
2662 * Constant: '<S729>/PWMAFreqRngMin'
2663 */
2664 L4_MABX_B.min_relop = (L4_MABX_P.PWMAFreqRngMin_Value <
2665 L4_MABX_B.Pedal_1_pwm_freq_raw_value);
2666
2667 /* RelationalOperator: '<S757>/max_relop' incorporates:
2668 * Constant: '<S729>/PWMAFreqRngMax'
2669 */
2670 L4_MABX_B.max_relop = (L4_MABX_B.Pedal_1_pwm_freq_raw_value <
2671 L4_MABX_P.PWMAFreqRngMax_Value);
2672
2673 /* Logic: '<S757>/conjunction' */
2674 L4_MABX_B.conjunction = (L4_MABX_B.min_relop && L4_MABX_B.max_relop);
2675
2676 /* UnitDelay: '<S762>/FixPt Unit Delay2' */
2677 L4_MABX_B.FixPtUnitDelay2 = L4_MABX_DW.FixPtUnitDelay2_DSTATE;
2678
2679 /* UnitDelay: '<S762>/FixPt Unit Delay1' */
2680 L4_MABX_B.Xold = L4_MABX_DW.FixPtUnitDelay1_DSTATE;
2681
2682 /* Switch: '<S762>/Init' incorporates:
2683 * Constant: '<S729>/PWMAFreqRngFaultLimMin'
2684 */
2685 if (L4_MABX_B.FixPtUnitDelay2 != 0) {
2686 L4_MABX_B.Init = L4_MABX_P.PWMAFreqRngFaultLimMin_Value;
2687 } else {
2688 L4_MABX_B.Init = L4_MABX_B.Xold;
2689 }
2690
2691 /* End of Switch: '<S762>/Init' */
2692
2693 /* Sum: '<S758>/FixPt Sum1' incorporates:
2694 * Constant: '<S758>/FixPt Constant'
2695 */
2696 L4_MABX_B.FixPtSum1 = L4_MABX_B.Init - L4_MABX_P.FixPtConstant_Value_c;
2697
2698 /* Sum: '<S761>/FixPt Sum1' incorporates:
2699 * Constant: '<S761>/FixPt Constant'
2700 */
2701 L4_MABX_B.FixPtSum1_h = L4_MABX_B.Init + L4_MABX_P.FixPtConstant_Value_g;
2702
2703 /* Outputs for Atomic SubSystem: '<S745>/If_Then_Else3' */
2704 L4_MABX_If_Then_Else(L4_MABX_B.conjunction, L4_MABX_B.FixPtSum1,
2705 L4_MABX_B.FixPtSum1_h, &L4_MABX_B.If_Then_Else3_d);
2706
2707 /* End of Outputs for SubSystem: '<S745>/If_Then_Else3' */
2708
2709 /* RelationalOperator: '<S759>/Relational Operator1' incorporates:
2710 * Constant: '<S729>/PWMAFreqRngFaultLimMax'
2711 */
2712 L4_MABX_B.RelationalOperator1 = (L4_MABX_B.If_Then_Else3_d.Switch >=
2713 L4_MABX_P.PWMAFreqRngFaultLimMax_Value);
2714
2715 /* RelationalOperator: '<S759>/Relational Operator' incorporates:
2716 * Constant: '<S729>/PWMAFreqRngFaultLimMin'
2717 */
2718 L4_MABX_B.RelationalOperator = (L4_MABX_B.If_Then_Else3_d.Switch <=
2719 L4_MABX_P.PWMAFreqRngFaultLimMin_Value);
2720
2721 /* Outputs for Atomic SubSystem: '<S759>/If_Then_Else1' */
2722
2723 /* Constant: '<S729>/PWMAFreqRngFaultLimMin' */
2724 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator,
2725 L4_MABX_P.PWMAFreqRngFaultLimMin_Value,
2726 L4_MABX_B.If_Then_Else3_d.Switch,
2727 &L4_MABX_B.If_Then_Else1_f);
2728
2729 /* End of Outputs for SubSystem: '<S759>/If_Then_Else1' */
2730
2731 /* Outputs for Atomic SubSystem: '<S759>/If_Then_Else' */
2732
2733 /* Constant: '<S729>/PWMAFreqRngFaultLimMax' */
2734 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1,
2735 L4_MABX_P.PWMAFreqRngFaultLimMax_Value,
2736 L4_MABX_B.If_Then_Else1_f.Switch,
2737 &L4_MABX_B.If_Then_Else_j);
2738
2739 /* End of Outputs for SubSystem: '<S759>/If_Then_Else' */
2740
2741 /* RelationalOperator: '<S745>/Relational Operator9' incorporates:
2742 * Constant: '<S729>/PWMAFreqRngFaultLimMin'
2743 */
2744 L4_MABX_B.F_Fault_Soft = (L4_MABX_B.If_Then_Else_j.Switch !=
2745 L4_MABX_P.PWMAFreqRngFaultLimMin_Value);
2746
2747 /* Gain: '<S402>/Gain' */
2748 L4_MABX_B.Gain = L4_MABX_P.Gain_Gain_kn * L4_MABX_B.SFunction1_o2;
2749
2750 /* DataTypeConversion: '<S402>/Data Type Conversion9' */
2751 L4_MABX_B.Pedal_1_pwm_dc_raw_value = L4_MABX_B.Gain;
2752
2753 /* RelationalOperator: '<S749>/min_relop' incorporates:
2754 * Constant: '<S729>/PWMADCRngMin'
2755 */
2756 L4_MABX_B.min_relop_b = (L4_MABX_P.PWMADCRngMin_Value <
2757 L4_MABX_B.Pedal_1_pwm_dc_raw_value);
2758
2759 /* RelationalOperator: '<S749>/max_relop' incorporates:
2760 * Constant: '<S729>/PWMADCRngMax'
2761 */
2762 L4_MABX_B.max_relop_g = (L4_MABX_B.Pedal_1_pwm_dc_raw_value <
2763 L4_MABX_P.PWMADCRngMax_Value);
2764
2765 /* Logic: '<S749>/conjunction' */
2766 L4_MABX_B.conjunction_c = (L4_MABX_B.min_relop_b && L4_MABX_B.max_relop_g);
2767
2768 /* UnitDelay: '<S754>/FixPt Unit Delay2' */
2769 L4_MABX_B.FixPtUnitDelay2_p = L4_MABX_DW.FixPtUnitDelay2_DSTATE_j;
2770
2771 /* UnitDelay: '<S754>/FixPt Unit Delay1' */
2772 L4_MABX_B.Xold_m = L4_MABX_DW.FixPtUnitDelay1_DSTATE_m;
2773
2774 /* Switch: '<S754>/Init' incorporates:
2775 * Constant: '<S729>/PWMADCRngFaultLimMin'
2776 */
2777 if (L4_MABX_B.FixPtUnitDelay2_p != 0) {
2778 L4_MABX_B.Init_d = L4_MABX_P.PWMADCRngFaultLimMin_Value;
2779 } else {
2780 L4_MABX_B.Init_d = L4_MABX_B.Xold_m;
2781 }
2782
2783 /* End of Switch: '<S754>/Init' */
2784
2785 /* Sum: '<S750>/FixPt Sum1' incorporates:
2786 * Constant: '<S750>/FixPt Constant'
2787 */
2788 L4_MABX_B.FixPtSum1_m = L4_MABX_B.Init_d - L4_MABX_P.FixPtConstant_Value_i;
2789
2790 /* Sum: '<S753>/FixPt Sum1' incorporates:
2791 * Constant: '<S753>/FixPt Constant'
2792 */
2793 L4_MABX_B.FixPtSum1_o = L4_MABX_B.Init_d + L4_MABX_P.FixPtConstant_Value_p;
2794
2795 /* Outputs for Atomic SubSystem: '<S744>/If_Then_Else3' */
2796 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_c, L4_MABX_B.FixPtSum1_m,
2797 L4_MABX_B.FixPtSum1_o, &L4_MABX_B.If_Then_Else3);
2798
2799 /* End of Outputs for SubSystem: '<S744>/If_Then_Else3' */
2800
2801 /* RelationalOperator: '<S751>/Relational Operator1' incorporates:
2802 * Constant: '<S729>/PWMADCRngFaultLimMax'
2803 */
2804 L4_MABX_B.RelationalOperator1_o = (L4_MABX_B.If_Then_Else3.Switch >=
2805 L4_MABX_P.PWMADCRngFaultLimMax_Value);
2806
2807 /* RelationalOperator: '<S751>/Relational Operator' incorporates:
2808 * Constant: '<S729>/PWMADCRngFaultLimMin'
2809 */
2810 L4_MABX_B.RelationalOperator_i = (L4_MABX_B.If_Then_Else3.Switch <=
2811 L4_MABX_P.PWMADCRngFaultLimMin_Value);
2812
2813 /* Outputs for Atomic SubSystem: '<S751>/If_Then_Else1' */
2814
2815 /* Constant: '<S729>/PWMADCRngFaultLimMin' */
2816 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_i,
2817 L4_MABX_P.PWMADCRngFaultLimMin_Value,
2818 L4_MABX_B.If_Then_Else3.Switch,
2819 &L4_MABX_B.If_Then_Else1_b);
2820
2821 /* End of Outputs for SubSystem: '<S751>/If_Then_Else1' */
2822
2823 /* Outputs for Atomic SubSystem: '<S751>/If_Then_Else' */
2824
2825 /* Constant: '<S729>/PWMADCRngFaultLimMax' */
2826 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_o,
2827 L4_MABX_P.PWMADCRngFaultLimMax_Value,
2828 L4_MABX_B.If_Then_Else1_b.Switch,
2829 &L4_MABX_B.If_Then_Else_f);
2830
2831 /* End of Outputs for SubSystem: '<S751>/If_Then_Else' */
2832
2833 /* RelationalOperator: '<S744>/Relational Operator9' incorporates:
2834 * Constant: '<S729>/PWMADCRngFaultLimMin'
2835 */
2836 L4_MABX_B.F_Fault_Soft_n = (L4_MABX_B.If_Then_Else_f.Switch !=
2837 L4_MABX_P.PWMADCRngFaultLimMin_Value);
2838
2839 /* Logic: '<S729>/Logical Operator2' */
2840 L4_MABX_B.LogicalOperator2 = (L4_MABX_B.F_Fault_Soft ||
2841 L4_MABX_B.F_Fault_Soft_n);
2842
2843 /* RelationalOperator: '<S745>/Relational Operator8' incorporates:
2844 * Constant: '<S729>/PWMAFreqRngFaultLimMax'
2845 */
2846 L4_MABX_B.F_Fault_Hard = (L4_MABX_P.PWMAFreqRngFaultLimMax_Value <=
2847 L4_MABX_B.If_Then_Else_j.Switch);
2848
2849 /* RelationalOperator: '<S744>/Relational Operator8' incorporates:
2850 * Constant: '<S729>/PWMADCRngFaultLimMax'
2851 */
2852 L4_MABX_B.F_Fault_Hard_g = (L4_MABX_P.PWMADCRngFaultLimMax_Value <=
2853 L4_MABX_B.If_Then_Else_f.Switch);
2854
2855 /* Logic: '<S729>/Logical Operator1' */
2856 L4_MABX_B.LogicalOperator1 = (L4_MABX_B.F_Fault_Hard ||
2857 L4_MABX_B.F_Fault_Hard_g);
2858
2859 /* Chart: '<S729>/Health State Machine PWM Sensor 1' */
2860 /* Gateway: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2861 /* During: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2862 if (L4_MABX_DW.is_active_c9_SUB_ECU_L4_MABX_HW == 0U) {
2863 /* Entry: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2864 L4_MABX_DW.is_active_c9_SUB_ECU_L4_MABX_HW = 1U;
2865
2866 /* Entry Internal: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 1 */
2867 /* Transition: '<S742>:2' */
2868 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_FAILURE;
2869
2870 /* Entry 'NO_FAILURE': '<S742>:1' */
2871 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
2872 } else if (L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf ==
2873 L4_MABX_IN_FAILURE_DETECTED) {
2874 /* During 'FAILURE_DETECTED': '<S742>:6' */
2875 if (L4_MABX_DW.is_FAILURE_DETECTED_g == L4_MABX_IN_ERROR) {
2876 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
2877
2878 /* During 'ERROR': '<S742>:8' */
2879 if (!L4_MABX_B.LogicalOperator1) {
2880 /* Transition: '<S742>:17' */
2881 L4_MABX_DW.is_FAILURE_DETECTED_g = L4_MABX_IN_PENDING;
2882
2883 /* Entry 'PENDING': '<S742>:7' */
2884 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
2885 }
2886 } else {
2887 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
2888
2889 /* During 'PENDING': '<S742>:7' */
2890 zcEvent = ((!L4_MABX_B.LogicalOperator2) && (!L4_MABX_B.LogicalOperator1));
2891 if (zcEvent) {
2892 /* Transition: '<S742>:9' */
2893 L4_MABX_DW.is_FAILURE_DETECTED_g = L4_MABX_IN_NO_ACTIVE_CHILD;
2894 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_FAILURE;
2895
2896 /* Entry 'NO_FAILURE': '<S742>:1' */
2897 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
2898 } else {
2899 if (L4_MABX_B.LogicalOperator1) {
2900 /* Transition: '<S742>:12' */
2901 L4_MABX_DW.is_FAILURE_DETECTED_g = L4_MABX_IN_ERROR;
2902
2903 /* Entry 'ERROR': '<S742>:8' */
2904 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
2905 }
2906 }
2907 }
2908 } else {
2909 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
2910
2911 /* During 'NO_FAILURE': '<S742>:1' */
2912 zcEvent = (L4_MABX_B.LogicalOperator2 || L4_MABX_B.LogicalOperator1);
2913 if (zcEvent) {
2914 /* Transition: '<S742>:10' */
2915 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_FAILURE_DETECTED;
2916
2917 /* Entry 'FAILURE_DETECTED': '<S742>:6' */
2918 /* Entry Internal 'FAILURE_DETECTED': '<S742>:6' */
2919 /* Transition: '<S742>:11' */
2920 L4_MABX_DW.is_FAILURE_DETECTED_g = L4_MABX_IN_PENDING;
2921
2922 /* Entry 'PENDING': '<S742>:7' */
2923 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
2924 }
2925 }
2926
2927 /* End of Chart: '<S729>/Health State Machine PWM Sensor 1' */
2928
2929 /* RelationalOperator: '<S740>/Compare' incorporates:
2930 * Constant: '<S740>/Constant'
2931 */
2932 L4_MABX_B.Compare = (L4_MABX_B.Pedal_1_pwm_health_state ==
2933 L4_MABX_P.CompareToConstant_const_a);
2934
2935 /* S-Function (rti_commonblock): '<S725>/S-Function1' */
2936 /* This comment workarounds a code generation problem */
2937
2938 /* DataTypeConversion: '<S402>/Data Type Conversion3' */
2939 L4_MABX_B.Pedal_2_pwm_freq_raw_value = L4_MABX_B.SFunction1_o1_i;
2940
2941 /* RelationalOperator: '<S773>/min_relop' incorporates:
2942 * Constant: '<S729>/PWMBFreqRngMin1'
2943 */
2944 L4_MABX_B.min_relop_n = (L4_MABX_P.PWMBFreqRngMin1_Value <
2945 L4_MABX_B.Pedal_2_pwm_freq_raw_value);
2946
2947 /* RelationalOperator: '<S773>/max_relop' incorporates:
2948 * Constant: '<S729>/PWMBFreqRngMax1'
2949 */
2950 L4_MABX_B.max_relop_j = (L4_MABX_B.Pedal_2_pwm_freq_raw_value <
2951 L4_MABX_P.PWMBFreqRngMax1_Value);
2952
2953 /* Logic: '<S773>/conjunction' */
2954 L4_MABX_B.conjunction_f = (L4_MABX_B.min_relop_n && L4_MABX_B.max_relop_j);
2955
2956 /* UnitDelay: '<S778>/FixPt Unit Delay2' */
2957 L4_MABX_B.FixPtUnitDelay2_h = L4_MABX_DW.FixPtUnitDelay2_DSTATE_f;
2958
2959 /* UnitDelay: '<S778>/FixPt Unit Delay1' */
2960 L4_MABX_B.Xold_mr = L4_MABX_DW.FixPtUnitDelay1_DSTATE_a;
2961
2962 /* Switch: '<S778>/Init' incorporates:
2963 * Constant: '<S729>/PWMBFreqRngFaultLimMin1'
2964 */
2965 if (L4_MABX_B.FixPtUnitDelay2_h != 0) {
2966 L4_MABX_B.Init_n = L4_MABX_P.PWMBFreqRngFaultLimMin1_Value;
2967 } else {
2968 L4_MABX_B.Init_n = L4_MABX_B.Xold_mr;
2969 }
2970
2971 /* End of Switch: '<S778>/Init' */
2972
2973 /* Sum: '<S774>/FixPt Sum1' incorporates:
2974 * Constant: '<S774>/FixPt Constant'
2975 */
2976 L4_MABX_B.FixPtSum1_my = L4_MABX_B.Init_n - L4_MABX_P.FixPtConstant_Value_h;
2977
2978 /* Sum: '<S777>/FixPt Sum1' incorporates:
2979 * Constant: '<S777>/FixPt Constant'
2980 */
2981 L4_MABX_B.FixPtSum1_e = L4_MABX_B.Init_n + L4_MABX_P.FixPtConstant_Value_j;
2982
2983 /* Outputs for Atomic SubSystem: '<S747>/If_Then_Else3' */
2984 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_f, L4_MABX_B.FixPtSum1_my,
2985 L4_MABX_B.FixPtSum1_e, &L4_MABX_B.If_Then_Else3_h);
2986
2987 /* End of Outputs for SubSystem: '<S747>/If_Then_Else3' */
2988
2989 /* RelationalOperator: '<S775>/Relational Operator1' incorporates:
2990 * Constant: '<S729>/PWMBFreqRngFaultLimMax1'
2991 */
2992 L4_MABX_B.RelationalOperator1_b = (L4_MABX_B.If_Then_Else3_h.Switch >=
2993 L4_MABX_P.PWMBFreqRngFaultLimMax1_Value);
2994
2995 /* RelationalOperator: '<S775>/Relational Operator' incorporates:
2996 * Constant: '<S729>/PWMBFreqRngFaultLimMin1'
2997 */
2998 L4_MABX_B.RelationalOperator_o = (L4_MABX_B.If_Then_Else3_h.Switch <=
2999 L4_MABX_P.PWMBFreqRngFaultLimMin1_Value);
3000
3001 /* Outputs for Atomic SubSystem: '<S775>/If_Then_Else1' */
3002
3003 /* Constant: '<S729>/PWMBFreqRngFaultLimMin1' */
3004 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_o,
3005 L4_MABX_P.PWMBFreqRngFaultLimMin1_Value,
3006 L4_MABX_B.If_Then_Else3_h.Switch,
3007 &L4_MABX_B.If_Then_Else1_fn);
3008
3009 /* End of Outputs for SubSystem: '<S775>/If_Then_Else1' */
3010
3011 /* Outputs for Atomic SubSystem: '<S775>/If_Then_Else' */
3012
3013 /* Constant: '<S729>/PWMBFreqRngFaultLimMax1' */
3014 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_b,
3015 L4_MABX_P.PWMBFreqRngFaultLimMax1_Value,
3016 L4_MABX_B.If_Then_Else1_fn.Switch,
3017 &L4_MABX_B.If_Then_Else_c);
3018
3019 /* End of Outputs for SubSystem: '<S775>/If_Then_Else' */
3020
3021 /* RelationalOperator: '<S747>/Relational Operator9' incorporates:
3022 * Constant: '<S729>/PWMBFreqRngFaultLimMin1'
3023 */
3024 L4_MABX_B.F_Fault_Soft_m = (L4_MABX_B.If_Then_Else_c.Switch !=
3025 L4_MABX_P.PWMBFreqRngFaultLimMin1_Value);
3026
3027 /* Gain: '<S402>/Gain1' */
3028 L4_MABX_B.Gain1 = L4_MABX_P.Gain1_Gain_b * L4_MABX_B.SFunction1_o2_l;
3029
3030 /* DataTypeConversion: '<S402>/Data Type Conversion1' */
3031 L4_MABX_B.Pedal_2_pwm_dc_raw_value = L4_MABX_B.Gain1;
3032
3033 /* RelationalOperator: '<S765>/min_relop' incorporates:
3034 * Constant: '<S729>/PWMBDCRngMin1'
3035 */
3036 L4_MABX_B.min_relop_d = (L4_MABX_P.PWMBDCRngMin1_Value <
3037 L4_MABX_B.Pedal_2_pwm_dc_raw_value);
3038
3039 /* RelationalOperator: '<S765>/max_relop' incorporates:
3040 * Constant: '<S729>/PWMBDCRngMax1'
3041 */
3042 L4_MABX_B.max_relop_k = (L4_MABX_B.Pedal_2_pwm_dc_raw_value <
3043 L4_MABX_P.PWMBDCRngMax1_Value);
3044
3045 /* Logic: '<S765>/conjunction' */
3046 L4_MABX_B.conjunction_g = (L4_MABX_B.min_relop_d && L4_MABX_B.max_relop_k);
3047
3048 /* UnitDelay: '<S770>/FixPt Unit Delay2' */
3049 L4_MABX_B.FixPtUnitDelay2_e = L4_MABX_DW.FixPtUnitDelay2_DSTATE_i;
3050
3051 /* UnitDelay: '<S770>/FixPt Unit Delay1' */
3052 L4_MABX_B.Xold_j = L4_MABX_DW.FixPtUnitDelay1_DSTATE_my;
3053
3054 /* Switch: '<S770>/Init' incorporates:
3055 * Constant: '<S729>/PWMBDCRngFaultLimMin1'
3056 */
3057 if (L4_MABX_B.FixPtUnitDelay2_e != 0) {
3058 L4_MABX_B.Init_e = L4_MABX_P.PWMBDCRngFaultLimMin1_Value;
3059 } else {
3060 L4_MABX_B.Init_e = L4_MABX_B.Xold_j;
3061 }
3062
3063 /* End of Switch: '<S770>/Init' */
3064
3065 /* Sum: '<S766>/FixPt Sum1' incorporates:
3066 * Constant: '<S766>/FixPt Constant'
3067 */
3068 L4_MABX_B.FixPtSum1_l = L4_MABX_B.Init_e - L4_MABX_P.FixPtConstant_Value_b;
3069
3070 /* Sum: '<S769>/FixPt Sum1' incorporates:
3071 * Constant: '<S769>/FixPt Constant'
3072 */
3073 L4_MABX_B.FixPtSum1_g = L4_MABX_B.Init_e + L4_MABX_P.FixPtConstant_Value_e;
3074
3075 /* Outputs for Atomic SubSystem: '<S746>/If_Then_Else3' */
3076 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_g, L4_MABX_B.FixPtSum1_l,
3077 L4_MABX_B.FixPtSum1_g, &L4_MABX_B.If_Then_Else3_c);
3078
3079 /* End of Outputs for SubSystem: '<S746>/If_Then_Else3' */
3080
3081 /* RelationalOperator: '<S767>/Relational Operator1' incorporates:
3082 * Constant: '<S729>/PWMBDCRngFaultLimMax1'
3083 */
3084 L4_MABX_B.RelationalOperator1_j = (L4_MABX_B.If_Then_Else3_c.Switch >=
3085 L4_MABX_P.PWMBDCRngFaultLimMax1_Value);
3086
3087 /* RelationalOperator: '<S767>/Relational Operator' incorporates:
3088 * Constant: '<S729>/PWMBDCRngFaultLimMin1'
3089 */
3090 L4_MABX_B.RelationalOperator_i5 = (L4_MABX_B.If_Then_Else3_c.Switch <=
3091 L4_MABX_P.PWMBDCRngFaultLimMin1_Value);
3092
3093 /* Outputs for Atomic SubSystem: '<S767>/If_Then_Else1' */
3094
3095 /* Constant: '<S729>/PWMBDCRngFaultLimMin1' */
3096 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_i5,
3097 L4_MABX_P.PWMBDCRngFaultLimMin1_Value,
3098 L4_MABX_B.If_Then_Else3_c.Switch,
3099 &L4_MABX_B.If_Then_Else1_j);
3100
3101 /* End of Outputs for SubSystem: '<S767>/If_Then_Else1' */
3102
3103 /* Outputs for Atomic SubSystem: '<S767>/If_Then_Else' */
3104
3105 /* Constant: '<S729>/PWMBDCRngFaultLimMax1' */
3106 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_j,
3107 L4_MABX_P.PWMBDCRngFaultLimMax1_Value,
3108 L4_MABX_B.If_Then_Else1_j.Switch,
3109 &L4_MABX_B.If_Then_Else_o);
3110
3111 /* End of Outputs for SubSystem: '<S767>/If_Then_Else' */
3112
3113 /* RelationalOperator: '<S746>/Relational Operator9' incorporates:
3114 * Constant: '<S729>/PWMBDCRngFaultLimMin1'
3115 */
3116 L4_MABX_B.F_Fault_Soft_l = (L4_MABX_B.If_Then_Else_o.Switch !=
3117 L4_MABX_P.PWMBDCRngFaultLimMin1_Value);
3118
3119 /* Logic: '<S729>/Logical Operator4' */
3120 L4_MABX_B.LogicalOperator4 = (L4_MABX_B.F_Fault_Soft_m ||
3121 L4_MABX_B.F_Fault_Soft_l);
3122
3123 /* RelationalOperator: '<S747>/Relational Operator8' incorporates:
3124 * Constant: '<S729>/PWMBFreqRngFaultLimMax1'
3125 */
3126 L4_MABX_B.F_Fault_Hard_i = (L4_MABX_P.PWMBFreqRngFaultLimMax1_Value <=
3127 L4_MABX_B.If_Then_Else_c.Switch);
3128
3129 /* RelationalOperator: '<S746>/Relational Operator8' incorporates:
3130 * Constant: '<S729>/PWMBDCRngFaultLimMax1'
3131 */
3132 L4_MABX_B.F_Fault_Hard_c = (L4_MABX_P.PWMBDCRngFaultLimMax1_Value <=
3133 L4_MABX_B.If_Then_Else_o.Switch);
3134
3135 /* Logic: '<S729>/Logical Operator3' */
3136 L4_MABX_B.LogicalOperator3 = (L4_MABX_B.F_Fault_Hard_i ||
3137 L4_MABX_B.F_Fault_Hard_c);
3138
3139 /* Chart: '<S729>/Health State Machine PWM Sensor 2' */
3140 /* Gateway: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3141 /* During: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3142 if (L4_MABX_DW.is_active_c10_SUB_ECU_L4_MABX_H == 0U) {
3143 /* Entry: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3144 L4_MABX_DW.is_active_c10_SUB_ECU_L4_MABX_H = 1U;
3145
3146 /* Entry Internal: DIGITAL/PWM pedal input management/Diagnose pedal input signals/Health State Machine PWM Sensor 2 */
3147 /* Transition: '<S743>:2' */
3148 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_NO_FAILURE;
3149
3150 /* Entry 'NO_FAILURE': '<S743>:1' */
3151 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3152 } else if (L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter ==
3153 L4_MABX_IN_FAILURE_DETECTED) {
3154 /* During 'FAILURE_DETECTED': '<S743>:6' */
3155 if (L4_MABX_DW.is_FAILURE_DETECTED == L4_MABX_IN_ERROR) {
3156 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
3157
3158 /* During 'ERROR': '<S743>:8' */
3159 if (!L4_MABX_B.LogicalOperator3) {
3160 /* Transition: '<S743>:20' */
3161 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_PENDING;
3162
3163 /* Entry 'PENDING': '<S743>:7' */
3164 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3165 }
3166 } else {
3167 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3168
3169 /* During 'PENDING': '<S743>:7' */
3170 zcEvent = ((!L4_MABX_B.LogicalOperator4) && (!L4_MABX_B.LogicalOperator3));
3171 if (zcEvent) {
3172 /* Transition: '<S743>:9' */
3173 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_NO_ACTIVE_CHILD;
3174 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_NO_FAILURE;
3175
3176 /* Entry 'NO_FAILURE': '<S743>:1' */
3177 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3178 } else {
3179 if (L4_MABX_B.LogicalOperator3) {
3180 /* Transition: '<S743>:12' */
3181 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_ERROR;
3182
3183 /* Entry 'ERROR': '<S743>:8' */
3184 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_ACTIVE;
3185 }
3186 }
3187 }
3188 } else {
3189 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
3190
3191 /* During 'NO_FAILURE': '<S743>:1' */
3192 zcEvent = (L4_MABX_B.LogicalOperator4 || L4_MABX_B.LogicalOperator3);
3193 if (zcEvent) {
3194 /* Transition: '<S743>:10' */
3195 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_FAILURE_DETECTED;
3196
3197 /* Entry 'FAILURE_DETECTED': '<S743>:6' */
3198 /* Entry Internal 'FAILURE_DETECTED': '<S743>:6' */
3199 /* Transition: '<S743>:11' */
3200 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_PENDING;
3201
3202 /* Entry 'PENDING': '<S743>:7' */
3203 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_PENDING;
3204 }
3205 }
3206
3207 /* End of Chart: '<S729>/Health State Machine PWM Sensor 2' */
3208
3209 /* RelationalOperator: '<S741>/Compare' incorporates:
3210 * Constant: '<S741>/Constant'
3211 */
3212 L4_MABX_B.Compare_i = (L4_MABX_B.Pedal_2_pwm_health_state ==
3213 L4_MABX_P.CompareToConstant2_const_c);
3214
3215 /* Logic: '<S729>/Logical Operator5' */
3216 L4_MABX_B.F_Pedal_pwm_sens_total_failure = (L4_MABX_B.Compare &&
3217 L4_MABX_B.Compare_i);
3218
3219 /* UnitDelay: '<S732>/Unit_Delay' */
3220 L4_MABX_B.Unit_Delay_ba = L4_MABX_DW.Unit_Delay_DSTATE_kp;
3221
3222 /* UnitDelay: '<S799>/Unit_Delay1' */
3223 L4_MABX_B.Unit_Delay1 = L4_MABX_DW.Unit_Delay1_DSTATE;
3224
3225 /* Logic: '<S799>/Logical Operator' */
3226 L4_MABX_B.LogicalOperator_f = (L4_MABX_B.Unit_Delay_ba ||
3227 L4_MABX_B.Unit_Delay1);
3228
3229 /* MinMax: '<S799>/MinMax1' incorporates:
3230 * Constant: '<S732>/PEDAL_PWM_SENSOR_DATA_APV.T1_CONST'
3231 * Constant: '<S732>/dT'
3232 */
3233 DeltaTime = L4_MABX_P.dT_Value;
3234 PositionFinalLimited = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVT1_CON;
3235 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3236 PositionFinalLimited = DeltaTime;
3237 }
3238
3239 L4_MABX_B.MinMax1 = PositionFinalLimited;
3240
3241 /* End of MinMax: '<S799>/MinMax1' */
3242
3243 /* Saturate: '<S799>/Saturation' */
3244 DeltaTime = L4_MABX_B.MinMax1;
3245 Time56 = L4_MABX_P.Saturation_LowerSat_gy;
3246 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_g;
3247 if (DeltaTime > PositionFinalLimited) {
3248 L4_MABX_B.Saturation = PositionFinalLimited;
3249 } else if (DeltaTime < Time56) {
3250 L4_MABX_B.Saturation = Time56;
3251 } else {
3252 L4_MABX_B.Saturation = DeltaTime;
3253 }
3254
3255 /* End of Saturate: '<S799>/Saturation' */
3256
3257 /* Product: '<S799>/Divide' incorporates:
3258 * Constant: '<S732>/dT'
3259 */
3260 L4_MABX_B.Divide = L4_MABX_P.dT_Value / L4_MABX_B.Saturation;
3261
3262 /* Product: '<S799>/Product2' */
3263 L4_MABX_B.Product2 = L4_MABX_B.Pedal_1_pwm_dc_raw_value * L4_MABX_B.Divide;
3264
3265 /* Sum: '<S799>/Subtract1' incorporates:
3266 * Constant: '<S799>/Constant1'
3267 */
3268 L4_MABX_B.Subtract1 = L4_MABX_P.Constant1_Value_jm - L4_MABX_B.Divide;
3269
3270 /* UnitDelay: '<S799>/Unit_Delay2' */
3271 L4_MABX_B.Unit_Delay2 = L4_MABX_DW.Unit_Delay2_DSTATE;
3272
3273 /* Product: '<S799>/Product1' */
3274 L4_MABX_B.Product1 = L4_MABX_B.Subtract1 * L4_MABX_B.Unit_Delay2;
3275
3276 /* Sum: '<S799>/Add1' */
3277 L4_MABX_B.Add1 = L4_MABX_B.Product2 + L4_MABX_B.Product1;
3278
3279 /* Outputs for Atomic SubSystem: '<S799>/If_Then_Else' */
3280 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_f,
3281 L4_MABX_B.Pedal_1_pwm_dc_raw_value, L4_MABX_B.Add1,
3282 &L4_MABX_B.If_Then_Else_h);
3283
3284 /* End of Outputs for SubSystem: '<S799>/If_Then_Else' */
3285
3286 /* Lookup_n-D: '<S732>/PEDAL_PWM_ANGLE_SENS_1_MPV' */
3287 L4_MABX_B.Pedal_1_pwm_undefault = look1_binlcapw
3288 (L4_MABX_B.If_Then_Else_h.Switch, L4_MABX_P.PEDAL_PWM_ANGLE_SENS_1_MPV_bp01,
3289 L4_MABX_P.PEDAL_PWM_ANGLE_SENS_1_MPV_tabl, 7U);
3290
3291 /* UnitDelay: '<S732>/Unit_Delay1' */
3292 L4_MABX_B.Unit_Delay1_p = L4_MABX_DW.Unit_Delay1_DSTATE_l;
3293
3294 /* UnitDelay: '<S800>/Unit_Delay1' */
3295 L4_MABX_B.Unit_Delay1_i = L4_MABX_DW.Unit_Delay1_DSTATE_h;
3296
3297 /* Logic: '<S800>/Logical Operator' */
3298 L4_MABX_B.LogicalOperator_i = (L4_MABX_B.Unit_Delay1_p ||
3299 L4_MABX_B.Unit_Delay1_i);
3300
3301 /* MinMax: '<S800>/MinMax1' incorporates:
3302 * Constant: '<S732>/PEDAL_PWM_SENSOR_DATA_APV.T2_CONST'
3303 * Constant: '<S732>/dT1'
3304 */
3305 DeltaTime = L4_MABX_P.dT1_Value;
3306 PositionFinalLimited = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVT2_CON;
3307 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3308 PositionFinalLimited = DeltaTime;
3309 }
3310
3311 L4_MABX_B.MinMax1_a = PositionFinalLimited;
3312
3313 /* End of MinMax: '<S800>/MinMax1' */
3314
3315 /* Saturate: '<S800>/Saturation' */
3316 DeltaTime = L4_MABX_B.MinMax1_a;
3317 Time56 = L4_MABX_P.Saturation_LowerSat_l;
3318 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_e5;
3319 if (DeltaTime > PositionFinalLimited) {
3320 L4_MABX_B.Saturation_l = PositionFinalLimited;
3321 } else if (DeltaTime < Time56) {
3322 L4_MABX_B.Saturation_l = Time56;
3323 } else {
3324 L4_MABX_B.Saturation_l = DeltaTime;
3325 }
3326
3327 /* End of Saturate: '<S800>/Saturation' */
3328
3329 /* Product: '<S800>/Divide' incorporates:
3330 * Constant: '<S732>/dT1'
3331 */
3332 L4_MABX_B.Divide_k = L4_MABX_P.dT1_Value / L4_MABX_B.Saturation_l;
3333
3334 /* Product: '<S800>/Product2' */
3335 L4_MABX_B.Product2_f = L4_MABX_B.Pedal_2_pwm_freq_raw_value *
3336 L4_MABX_B.Divide_k;
3337
3338 /* Sum: '<S800>/Subtract1' incorporates:
3339 * Constant: '<S800>/Constant1'
3340 */
3341 L4_MABX_B.Subtract1_g = L4_MABX_P.Constant1_Value_b - L4_MABX_B.Divide_k;
3342
3343 /* UnitDelay: '<S800>/Unit_Delay2' */
3344 L4_MABX_B.Unit_Delay2_j = L4_MABX_DW.Unit_Delay2_DSTATE_i;
3345
3346 /* Product: '<S800>/Product1' */
3347 L4_MABX_B.Product1_b = L4_MABX_B.Subtract1_g * L4_MABX_B.Unit_Delay2_j;
3348
3349 /* Sum: '<S800>/Add1' */
3350 L4_MABX_B.Add1_c = L4_MABX_B.Product2_f + L4_MABX_B.Product1_b;
3351
3352 /* Outputs for Atomic SubSystem: '<S800>/If_Then_Else' */
3353 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_i,
3354 L4_MABX_B.Pedal_2_pwm_freq_raw_value, L4_MABX_B.Add1_c,
3355 &L4_MABX_B.If_Then_Else_n);
3356
3357 /* End of Outputs for SubSystem: '<S800>/If_Then_Else' */
3358
3359 /* Lookup_n-D: '<S732>/PEDAL_PWM_ANGLE_SENS_2_MPV' */
3360 L4_MABX_B.Pedal_2_pwm_undefault = look1_binlcapw
3361 (L4_MABX_B.If_Then_Else_n.Switch, L4_MABX_P.PEDAL_PWM_ANGLE_SENS_2_MPV_bp01,
3362 L4_MABX_P.PEDAL_PWM_ANGLE_SENS_2_MPV_tabl, 7U);
3363
3364 /* Sum: '<S734>/Subtract' */
3365 L4_MABX_B.Subtract = L4_MABX_B.Pedal_1_pwm_undefault -
3366 L4_MABX_B.Pedal_2_pwm_undefault;
3367
3368 /* Abs: '<S734>/Abs' */
3369 L4_MABX_B.Abs = fabs(L4_MABX_B.Subtract);
3370
3371 /* RelationalOperator: '<S736>/Compare' incorporates:
3372 * Constant: '<S736>/Constant'
3373 */
3374 L4_MABX_B.Compare_b = (L4_MABX_B.Pedal_1_pwm_health_state ==
3375 L4_MABX_P.CompareToConstant3_const_p);
3376
3377 /* RelationalOperator: '<S792>/Compare' incorporates:
3378 * Constant: '<S792>/Constant'
3379 */
3380 L4_MABX_B.Compare_e = (L4_MABX_B.Pedal_2_pwm_health_state ==
3381 L4_MABX_P.CompareToConstant5_const);
3382
3383 /* Logic: '<S730>/Logical Operator7' */
3384 L4_MABX_B.LogicalOperator7 = !L4_MABX_B.Compare_e;
3385
3386 /* RelationalOperator: '<S791>/Compare' incorporates:
3387 * Constant: '<S791>/Constant'
3388 */
3389 L4_MABX_B.Compare_d = (L4_MABX_B.Pedal_2_pwm_health_state ==
3390 L4_MABX_P.CompareToConstant4_const);
3391
3392 /* Logic: '<S730>/Logical Operator8' */
3393 L4_MABX_B.LogicalOperator8 = !L4_MABX_B.Compare_d;
3394
3395 /* UnitDelay: '<S798>/FixPt Unit Delay2' */
3396 L4_MABX_B.FixPtUnitDelay2_e3 = L4_MABX_DW.FixPtUnitDelay2_DSTATE_o;
3397
3398 /* UnitDelay: '<S798>/FixPt Unit Delay1' */
3399 L4_MABX_B.Xold_d = L4_MABX_DW.FixPtUnitDelay1_DSTATE_c;
3400
3401 /* Switch: '<S798>/Init' incorporates:
3402 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3403 */
3404 if (L4_MABX_B.FixPtUnitDelay2_e3 != 0) {
3405 L4_MABX_B.Init_dm = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3406 } else {
3407 L4_MABX_B.Init_dm = L4_MABX_B.Xold_d;
3408 }
3409
3410 /* End of Switch: '<S798>/Init' */
3411
3412 /* Outputs for Atomic SubSystem: '<S730>/If_Then_Else3' */
3413 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator8,
3414 L4_MABX_B.Pedal_2_pwm_undefault, L4_MABX_B.Init_dm,
3415 &L4_MABX_B.If_Then_Else3_j3);
3416
3417 /* End of Outputs for SubSystem: '<S730>/If_Then_Else3' */
3418
3419 /* Outputs for Atomic SubSystem: '<S730>/If_Then_Else2' */
3420
3421 /* Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE' */
3422 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator7,
3423 L4_MABX_B.If_Then_Else3_j3.Switch,
3424 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL,
3425 &L4_MABX_B.If_Then_Else2_o);
3426
3427 /* End of Outputs for SubSystem: '<S730>/If_Then_Else2' */
3428
3429 /* RelationalOperator: '<S790>/Compare' incorporates:
3430 * Constant: '<S790>/Constant'
3431 */
3432 L4_MABX_B.Compare_a = (L4_MABX_B.Pedal_1_pwm_health_state ==
3433 L4_MABX_P.CompareToConstant3_const_j);
3434
3435 /* Logic: '<S730>/Logical Operator5' */
3436 L4_MABX_B.LogicalOperator5 = !L4_MABX_B.Compare_a;
3437
3438 /* RelationalOperator: '<S789>/Compare' incorporates:
3439 * Constant: '<S789>/Constant'
3440 */
3441 L4_MABX_B.Compare_h = (L4_MABX_B.Pedal_1_pwm_health_state ==
3442 L4_MABX_P.CompareToConstant1_const_n);
3443
3444 /* Logic: '<S730>/Logical Operator6' */
3445 L4_MABX_B.LogicalOperator6 = !L4_MABX_B.Compare_h;
3446
3447 /* UnitDelay: '<S797>/FixPt Unit Delay2' */
3448 L4_MABX_B.FixPtUnitDelay2_m = L4_MABX_DW.FixPtUnitDelay2_DSTATE_d;
3449
3450 /* UnitDelay: '<S797>/FixPt Unit Delay1' */
3451 L4_MABX_B.Xold_i = L4_MABX_DW.FixPtUnitDelay1_DSTATE_k;
3452
3453 /* Switch: '<S797>/Init' incorporates:
3454 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3455 */
3456 if (L4_MABX_B.FixPtUnitDelay2_m != 0) {
3457 L4_MABX_B.Init_o = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3458 } else {
3459 L4_MABX_B.Init_o = L4_MABX_B.Xold_i;
3460 }
3461
3462 /* End of Switch: '<S797>/Init' */
3463
3464 /* Outputs for Atomic SubSystem: '<S730>/If_Then_Else1' */
3465 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator6,
3466 L4_MABX_B.Pedal_1_pwm_undefault, L4_MABX_B.Init_o,
3467 &L4_MABX_B.If_Then_Else1_g);
3468
3469 /* End of Outputs for SubSystem: '<S730>/If_Then_Else1' */
3470
3471 /* Outputs for Atomic SubSystem: '<S730>/If_Then_Else' */
3472
3473 /* Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE' */
3474 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator5,
3475 L4_MABX_B.If_Then_Else1_g.Switch,
3476 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL,
3477 &L4_MABX_B.If_Then_Else_g);
3478
3479 /* End of Outputs for SubSystem: '<S730>/If_Then_Else' */
3480
3481 /* Outputs for Atomic SubSystem: '<S728>/If_Then_Else1' */
3482 L4_MABX_If_Then_Else(L4_MABX_B.Compare_b, L4_MABX_B.If_Then_Else2_o.Switch,
3483 L4_MABX_B.If_Then_Else_g.Switch, &L4_MABX_B.If_Then_Else1);
3484
3485 /* End of Outputs for SubSystem: '<S728>/If_Then_Else1' */
3486
3487 /* RelationalOperator: '<S735>/Compare' incorporates:
3488 * Constant: '<S735>/Constant'
3489 */
3490 L4_MABX_B.Compare_o = (L4_MABX_B.Pedal_2_pwm_health_state ==
3491 L4_MABX_P.CompareToConstant1_const_f);
3492
3493 /* Outputs for Atomic SubSystem: '<S728>/If_Then_Else2' */
3494 L4_MABX_If_Then_Else(L4_MABX_B.Compare_o, L4_MABX_B.If_Then_Else_g.Switch,
3495 L4_MABX_B.If_Then_Else2_o.Switch,
3496 &L4_MABX_B.If_Then_Else2);
3497
3498 /* End of Outputs for SubSystem: '<S728>/If_Then_Else2' */
3499
3500 /* MinMax: '<S728>/MinMax' */
3501 DeltaTime = L4_MABX_B.If_Then_Else1.Switch;
3502 PositionFinalLimited = L4_MABX_B.If_Then_Else2.Switch;
3503 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3504 PositionFinalLimited = DeltaTime;
3505 }
3506
3507 L4_MABX_B.MinMax = PositionFinalLimited;
3508
3509 /* End of MinMax: '<S728>/MinMax' */
3510
3511 /* Outputs for Atomic SubSystem: '<S728>/If_Then_Else' */
3512
3513 /* Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE' */
3514 L4_MABX_If_Then_Else(L4_MABX_B.F_Pedal_pwm_sens_total_failure,
3515 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL,
3516 L4_MABX_B.MinMax, &L4_MABX_B.If_Then_Else_i);
3517
3518 /* End of Outputs for SubSystem: '<S728>/If_Then_Else' */
3519
3520 /* Lookup_n-D: '<S734>/PEDAL_PWM_ANGLE_DEV_MPV' */
3521 L4_MABX_B.PEDAL_PWM_ANGLE_DEV_MPV = look1_binlcapw
3522 (L4_MABX_B.If_Then_Else_i.Switch, L4_MABX_P.PEDAL_PWM_ANGLE_DEV_MPV_bp01Dat,
3523 L4_MABX_P.PEDAL_PWM_ANGLE_DEV_MPV_tableDa, 7U);
3524
3525 /* RelationalOperator: '<S734>/Relational Operator' */
3526 L4_MABX_B.F_Pedal_pwm_sync_fault = (L4_MABX_B.Abs >
3527 L4_MABX_B.PEDAL_PWM_ANGLE_DEV_MPV);
3528
3529 /* DataTypeConversion: '<S729>/Data Type Conversion2' */
3530 L4_MABX_B.DataTypeConversion2 = L4_MABX_B.F_Pedal_pwm_sync_fault;
3531
3532 /* RelationalOperator: '<S781>/min_relop' incorporates:
3533 * Constant: '<S729>/PWMSynchRngMin'
3534 */
3535 L4_MABX_B.min_relop_m = (L4_MABX_P.PWMSynchRngMin_Value <
3536 L4_MABX_B.DataTypeConversion2);
3537
3538 /* RelationalOperator: '<S781>/max_relop' incorporates:
3539 * Constant: '<S729>/PWMSynchRngMax'
3540 */
3541 L4_MABX_B.max_relop_a = (L4_MABX_B.DataTypeConversion2 <
3542 L4_MABX_P.PWMSynchRngMax_Value);
3543
3544 /* Logic: '<S781>/conjunction' */
3545 L4_MABX_B.conjunction_i = (L4_MABX_B.min_relop_m && L4_MABX_B.max_relop_a);
3546
3547 /* UnitDelay: '<S786>/FixPt Unit Delay2' */
3548 L4_MABX_B.FixPtUnitDelay2_k = L4_MABX_DW.FixPtUnitDelay2_DSTATE_fl;
3549
3550 /* UnitDelay: '<S786>/FixPt Unit Delay1' */
3551 L4_MABX_B.Xold_k = L4_MABX_DW.FixPtUnitDelay1_DSTATE_mr;
3552
3553 /* Switch: '<S786>/Init' incorporates:
3554 * Constant: '<S729>/PWMSynchFaultLimMin'
3555 */
3556 if (L4_MABX_B.FixPtUnitDelay2_k != 0) {
3557 L4_MABX_B.Init_g = L4_MABX_P.PWMSynchFaultLimMin_Value;
3558 } else {
3559 L4_MABX_B.Init_g = L4_MABX_B.Xold_k;
3560 }
3561
3562 /* End of Switch: '<S786>/Init' */
3563
3564 /* Sum: '<S782>/FixPt Sum1' incorporates:
3565 * Constant: '<S782>/FixPt Constant'
3566 */
3567 L4_MABX_B.FixPtSum1_b = L4_MABX_B.Init_g - L4_MABX_P.FixPtConstant_Value_ja;
3568
3569 /* Sum: '<S785>/FixPt Sum1' incorporates:
3570 * Constant: '<S785>/FixPt Constant'
3571 */
3572 L4_MABX_B.FixPtSum1_c = L4_MABX_B.Init_g + L4_MABX_P.FixPtConstant_Value_pi;
3573
3574 /* Outputs for Atomic SubSystem: '<S748>/If_Then_Else3' */
3575 L4_MABX_If_Then_Else(L4_MABX_B.conjunction_i, L4_MABX_B.FixPtSum1_b,
3576 L4_MABX_B.FixPtSum1_c, &L4_MABX_B.If_Then_Else3_j);
3577
3578 /* End of Outputs for SubSystem: '<S748>/If_Then_Else3' */
3579
3580 /* RelationalOperator: '<S783>/Relational Operator1' incorporates:
3581 * Constant: '<S729>/PWMSynchFaultLimMax'
3582 */
3583 L4_MABX_B.RelationalOperator1_f = (L4_MABX_B.If_Then_Else3_j.Switch >=
3584 L4_MABX_P.PWMSynchFaultLimMax_Value);
3585
3586 /* RelationalOperator: '<S783>/Relational Operator' incorporates:
3587 * Constant: '<S729>/PWMSynchFaultLimMin'
3588 */
3589 L4_MABX_B.RelationalOperator_h = (L4_MABX_B.If_Then_Else3_j.Switch <=
3590 L4_MABX_P.PWMSynchFaultLimMin_Value);
3591
3592 /* Outputs for Atomic SubSystem: '<S783>/If_Then_Else1' */
3593
3594 /* Constant: '<S729>/PWMSynchFaultLimMin' */
3595 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_h,
3596 L4_MABX_P.PWMSynchFaultLimMin_Value,
3597 L4_MABX_B.If_Then_Else3_j.Switch,
3598 &L4_MABX_B.If_Then_Else1_o);
3599
3600 /* End of Outputs for SubSystem: '<S783>/If_Then_Else1' */
3601
3602 /* Outputs for Atomic SubSystem: '<S783>/If_Then_Else' */
3603
3604 /* Constant: '<S729>/PWMSynchFaultLimMax' */
3605 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_f,
3606 L4_MABX_P.PWMSynchFaultLimMax_Value,
3607 L4_MABX_B.If_Then_Else1_o.Switch,
3608 &L4_MABX_B.If_Then_Else_k);
3609
3610 /* End of Outputs for SubSystem: '<S783>/If_Then_Else' */
3611
3612 /* RelationalOperator: '<S748>/Relational Operator8' incorporates:
3613 * Constant: '<S729>/PWMSynchFaultLimMax'
3614 */
3615 L4_MABX_B.F_Fault_Hard_n = (L4_MABX_P.PWMSynchFaultLimMax_Value <=
3616 L4_MABX_B.If_Then_Else_k.Switch);
3617
3618 /* Logic: '<S726>/Logical Operator6' */
3619 L4_MABX_B.LogicalOperator6_g = (L4_MABX_B.F_Pedal_pwm_sens_total_failure ||
3620 L4_MABX_B.F_Fault_Hard_n);
3621
3622 /* Outputs for Enabled SubSystem: '<S726>/Slew_at_event' incorporates:
3623 * EnablePort: '<S733>/Enable'
3624 */
3625 /* Constant: '<S726>/F_PEDAL_TORQUE_SLEW_AT_FAULT' */
3626 if (L4_MABX_P.F_PEDAL_TORQUE_SLEW_AT_FAULT_Va) {
3627 if (!L4_MABX_DW.Slew_at_event_MODE) {
3628 /* InitializeConditions for UnitDelay: '<S804>/Unit_Delay' */
3629 L4_MABX_DW.Unit_Delay_DSTATE_eb = L4_MABX_P.Unit_Delay_InitialCondition_aw;
3630
3631 /* InitializeConditions for UnitDelay: '<S805>/Unit_Delay' */
3632 L4_MABX_DW.Unit_Delay_DSTATE_mm = L4_MABX_P.Unit_Delay_InitialCondition_n;
3633
3634 /* InitializeConditions for UnitDelay: '<S808>/FixPt Unit Delay2' */
3635 L4_MABX_DW.FixPtUnitDelay2_DSTATE_l =
3636 L4_MABX_P.FixPtUnitDelay2_InitialCondi_pa;
3637
3638 /* InitializeConditions for UnitDelay: '<S808>/FixPt Unit Delay1' */
3639 L4_MABX_DW.FixPtUnitDelay1_DSTATE_l =
3640 L4_MABX_P.FixPtUnitDelay1_InitialCondi_hw;
3641
3642 /* InitializeConditions for UnitDelay: '<S803>/Unit_Delay' */
3643 L4_MABX_DW.Unit_Delay_DSTATE_pn = L4_MABX_P.Unit_Delay_InitialCondition_nn;
3644 L4_MABX_DW.Slew_at_event_MODE = true;
3645 }
3646
3647 /* UnitDelay: '<S804>/Unit_Delay' */
3648 L4_MABX_B.Unit_Delay_aw = L4_MABX_DW.Unit_Delay_DSTATE_eb;
3649
3650 /* Logic: '<S804>/Logical Operator1' */
3651 L4_MABX_B.LogicalOperator1_b3 = !L4_MABX_B.Unit_Delay_aw;
3652
3653 /* Logic: '<S804>/Logical Operator' */
3654 L4_MABX_B.LogicalOperator_hr = (L4_MABX_B.LogicalOperator6_g &&
3655 L4_MABX_B.LogicalOperator1_b3);
3656
3657 /* UnitDelay: '<S805>/Unit_Delay' */
3658 L4_MABX_B.Unit_Delay_o = L4_MABX_DW.Unit_Delay_DSTATE_mm;
3659
3660 /* Logic: '<S805>/Logical Operator1' */
3661 L4_MABX_B.LogicalOperator1_o = (L4_MABX_B.LogicalOperator_hr ||
3662 L4_MABX_B.Unit_Delay_o);
3663
3664 /* UnitDelay: '<S808>/FixPt Unit Delay2' */
3665 L4_MABX_B.FixPtUnitDelay2_d = L4_MABX_DW.FixPtUnitDelay2_DSTATE_l;
3666
3667 /* UnitDelay: '<S808>/FixPt Unit Delay1' */
3668 L4_MABX_B.Xold_o = L4_MABX_DW.FixPtUnitDelay1_DSTATE_l;
3669
3670 /* Switch: '<S808>/Init' incorporates:
3671 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3672 */
3673 if (L4_MABX_B.FixPtUnitDelay2_d != 0) {
3674 L4_MABX_B.Init_i = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3675 } else {
3676 L4_MABX_B.Init_i = L4_MABX_B.Xold_o;
3677 }
3678
3679 /* End of Switch: '<S808>/Init' */
3680
3681 /* Abs: '<S805>/Abs' incorporates:
3682 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_SLEW_UP'
3683 */
3684 L4_MABX_B.Abs_f = fabs(L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFA_f);
3685
3686 /* Product: '<S805>/Product1' incorporates:
3687 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DT'
3688 */
3689 L4_MABX_B.Product1_bn = L4_MABX_B.Abs_f *
3690 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDT_Val;
3691
3692 /* Sum: '<S805>/Add1' */
3693 L4_MABX_B.Add1_d = L4_MABX_B.Init_i + L4_MABX_B.Product1_bn;
3694
3695 /* MinMax: '<S805>/MinMax2' incorporates:
3696 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3697 */
3698 DeltaTime = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL;
3699 PositionFinalLimited = L4_MABX_B.Add1_d;
3700 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3701 PositionFinalLimited = DeltaTime;
3702 }
3703
3704 L4_MABX_B.MinMax2 = PositionFinalLimited;
3705
3706 /* End of MinMax: '<S805>/MinMax2' */
3707
3708 /* Abs: '<S805>/Abs1' incorporates:
3709 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_SLEW_DOWN'
3710 */
3711 L4_MABX_B.Abs1 = fabs(L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEF_fn);
3712
3713 /* Product: '<S805>/Product2' incorporates:
3714 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DT'
3715 */
3716 L4_MABX_B.Product2_m = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDT_Val *
3717 L4_MABX_B.Abs1;
3718
3719 /* Sum: '<S805>/Subtract1' */
3720 L4_MABX_B.Subtract1_p = L4_MABX_B.Init_i - L4_MABX_B.Product2_m;
3721
3722 /* MinMax: '<S805>/MinMax1' */
3723 DeltaTime = L4_MABX_B.MinMax2;
3724 PositionFinalLimited = L4_MABX_B.Subtract1_p;
3725 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
3726 PositionFinalLimited = DeltaTime;
3727 }
3728
3729 L4_MABX_B.MinMax1_e = PositionFinalLimited;
3730
3731 /* End of MinMax: '<S805>/MinMax1' */
3732
3733 /* Outputs for Atomic SubSystem: '<S805>/If_Then_Else' */
3734 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_o,
3735 L4_MABX_B.If_Then_Else_i.Switch, L4_MABX_B.MinMax1_e,
3736 &L4_MABX_B.If_Then_Else_ee);
3737
3738 /* End of Outputs for SubSystem: '<S805>/If_Then_Else' */
3739
3740 /* Sum: '<S733>/Subtract' incorporates:
3741 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_VALUE'
3742 */
3743 L4_MABX_B.Subtract_j = L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFAUL -
3744 L4_MABX_B.If_Then_Else_ee.Switch;
3745
3746 /* Abs: '<S733>/Abs' */
3747 L4_MABX_B.Abs_g = fabs(L4_MABX_B.Subtract_j);
3748
3749 /* RelationalOperator: '<S733>/Relational Operator1' incorporates:
3750 * Constant: '<S733>/Constant1'
3751 */
3752 L4_MABX_B.RelationalOperator1_c = (L4_MABX_B.Abs_g <=
3753 L4_MABX_P.Constant1_Value_if);
3754
3755 /* Logic: '<S803>/Logical Operator3' */
3756 L4_MABX_B.LogicalOperator3_pt = !L4_MABX_B.RelationalOperator1_c;
3757
3758 /* UnitDelay: '<S803>/Unit_Delay' */
3759 L4_MABX_B.Unit_Delay_ez = L4_MABX_DW.Unit_Delay_DSTATE_pn;
3760
3761 /* Logic: '<S803>/Logical Operator1' */
3762 L4_MABX_B.LogicalOperator1_mz = (L4_MABX_B.LogicalOperator6_g ||
3763 L4_MABX_B.Unit_Delay_ez);
3764
3765 /* Logic: '<S803>/Logical Operator' */
3766 L4_MABX_B.LogicalOperator_jl = (L4_MABX_B.LogicalOperator3_pt &&
3767 L4_MABX_B.LogicalOperator1_mz);
3768
3769 /* Logic: '<S803>/Logical Operator2' */
3770 L4_MABX_B.LogicalOperator2_h = !L4_MABX_B.LogicalOperator_jl;
3771
3772 /* RelationalOperator: '<S806>/min_relop' incorporates:
3773 * Constant: '<S726>/PEDAL_PWM_SENSOR_DATA_APV.DEFAULT_SLEW_UP'
3774 * Constant: '<S806>/min_val'
3775 */
3776 L4_MABX_B.min_relop_p = (L4_MABX_P.CheckStaticLowerBound_min_g <=
3777 L4_MABX_P.PEDAL_PWM_SENSOR_DATA_APVDEFA_f);
3778
3779 /* Assertion: '<S806>/Assertion' */
3780 utAssert(L4_MABX_B.min_relop_p);
3781 } else {
3782 if (L4_MABX_DW.Slew_at_event_MODE) {
3783 /* Disable for Outport: '<S733>/F_Out_slewing' */
3784 L4_MABX_B.LogicalOperator_jl = L4_MABX_P.F_Out_slewing_Y0_h;
3785
3786 /* Disable for Outport: '<S733>/Out' */
3787 L4_MABX_B.If_Then_Else_ee.Switch = L4_MABX_P.Out_Y0_a;
3788 L4_MABX_DW.Slew_at_event_MODE = false;
3789 }
3790 }
3791
3792 /* End of Constant: '<S726>/F_PEDAL_TORQUE_SLEW_AT_FAULT' */
3793 /* End of Outputs for SubSystem: '<S726>/Slew_at_event' */
3794
3795 /* Outputs for Atomic SubSystem: '<S726>/If_Then_Else' */
3796 L4_MABX_If_Then_Else_e(L4_MABX_B.LogicalOperator_jl,
3797 L4_MABX_B.If_Then_Else_ee.Switch, L4_MABX_B.If_Then_Else_i.Switch);
3798
3799 /* End of Outputs for SubSystem: '<S726>/If_Then_Else' */
3800
3801 /* S-Function (rti_commonblock): '<S718>/S-Function1' */
3802 /* This comment workarounds a code generation problem */
3803 {
3804 /* dSPACE I/O Board DS1401STDADCT4 #1 Unit:ADC Group:ADC */
3805 adc_tp4_single_new_read(ADC_TP4_1_MODULE_ADDR,
3806 ADC_TP4_CH3,
3807 (dsfloat *)&L4_MABX_B.SFunction1);
3808 }
3809
3810 /* Gain: '<S402>/KL15_Monitor' */
3811 L4_MABX_B.IgnitionKeySwitch_voltage = L4_MABX_P.KL15_Monitor_Gain *
3812 L4_MABX_B.SFunction1;
3813
3814 /* Outputs for Enabled SubSystem: '<S493>/CCVS1_31' incorporates:
3815 * EnablePort: '<S494>/Enable'
3816 */
3817 /* Constant: '<S416>/Constant' */
3818 if (L4_MABX_P.Constant_Value_gc) {
3819 /* S-Function (rti_commonblock): '<S494>/S-Function1' */
3820 /* This comment workarounds a code generation problem */
3821
3822 /* dSPACE RTICAN RX Message Block: "CCVS1_31" Id:419361073 */
3823 {
3824 UInt32 *CAN_Msg;
3825 static dsfloat time_old = 0.0;
3826
3827 /* Read status and timestamp info (previous message) */
3828 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].timestamp !=
3829 time_old) {
3830 /* ... save timestamp info for the calculation of the RX status
3831 during the consecutive sample hit*/
3832 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].
3833 timestamp;
3834
3835 /* ... set the processed flag to one */
3836 L4_MABX_B.SFunction1_o21_d = 1.0;
3837 L4_MABX_B.SFunction1_o22_l = (real_T)
3838 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].timestamp;
3839 L4_MABX_B.SFunction1_o23_k = (real_T)
3840 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].deltatime;
3841 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF131].data;
3842
3843 /* Decode CAN message */
3844 {
3845 {
3846 rtican_Signal_t CAN_Sgn;
3847
3848 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
3849 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3850 CAN_Sgn.UnsignedSgn &= 0x00000003;
3851 L4_MABX_B.SFunction1_o1_dq = ((real_T) CAN_Sgn.UnsignedSgn);
3852
3853 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
3854 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3855 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3856 CAN_Sgn.UnsignedSgn &= 0x00000003;
3857 L4_MABX_B.SFunction1_o2_om = ((real_T) CAN_Sgn.UnsignedSgn);
3858
3859 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
3860 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3861 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3862 CAN_Sgn.UnsignedSgn &= 0x00000003;
3863 L4_MABX_B.SFunction1_o3_mjk = ((real_T) CAN_Sgn.UnsignedSgn);
3864
3865 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
3866 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
3867 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3868 CAN_Sgn.UnsignedSgn &= 0x00000003;
3869 L4_MABX_B.SFunction1_o4_pt = ((real_T) CAN_Sgn.UnsignedSgn);
3870
3871 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
3872 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
3873 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
3874 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
3875 L4_MABX_B.SFunction1_o5_k2 = 0.00390625 * ( ((real_T)
3876 CAN_Sgn.UnsignedSgn) );
3877
3878 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
3879 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3880 CAN_Sgn.UnsignedSgn &= 0x00000003;
3881 L4_MABX_B.SFunction1_o6_fd = ((real_T) CAN_Sgn.UnsignedSgn);
3882
3883 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
3884 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3885 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3886 CAN_Sgn.UnsignedSgn &= 0x00000003;
3887 L4_MABX_B.SFunction1_o7_fa = ((real_T) CAN_Sgn.UnsignedSgn);
3888
3889 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
3890 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3891 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3892 CAN_Sgn.UnsignedSgn &= 0x00000003;
3893 L4_MABX_B.SFunction1_o8_g5 = ((real_T) CAN_Sgn.UnsignedSgn);
3894
3895 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
3896 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
3897 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3898 CAN_Sgn.UnsignedSgn &= 0x00000003;
3899 L4_MABX_B.SFunction1_o9_c0 = ((real_T) CAN_Sgn.UnsignedSgn);
3900
3901 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
3902 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3903 CAN_Sgn.UnsignedSgn &= 0x00000003;
3904 L4_MABX_B.SFunction1_o10_m = ((real_T) CAN_Sgn.UnsignedSgn);
3905
3906 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
3907 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3908 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3909 CAN_Sgn.UnsignedSgn &= 0x00000003;
3910 L4_MABX_B.SFunction1_o11_ai = ((real_T) CAN_Sgn.UnsignedSgn);
3911
3912 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
3913 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3914 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3915 CAN_Sgn.UnsignedSgn &= 0x00000003;
3916 L4_MABX_B.SFunction1_o12_e = ((real_T) CAN_Sgn.UnsignedSgn);
3917
3918 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
3919 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
3920 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3921 CAN_Sgn.UnsignedSgn &= 0x00000003;
3922 L4_MABX_B.SFunction1_o13_lf = ((real_T) CAN_Sgn.UnsignedSgn);
3923
3924 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
3925 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
3926 CAN_Sgn.UnsignedSgn &= 0x000000FF;
3927 L4_MABX_B.SFunction1_o14_f = ((real_T) CAN_Sgn.UnsignedSgn);
3928
3929 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
3930 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
3931 CAN_Sgn.UnsignedSgn &= 0x0000001F;
3932 L4_MABX_B.SFunction1_o15_k = ((real_T) CAN_Sgn.UnsignedSgn);
3933
3934 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
3935 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
3936 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 5;
3937 CAN_Sgn.UnsignedSgn &= 0x00000007;
3938 L4_MABX_B.SFunction1_o16_h = ((real_T) CAN_Sgn.UnsignedSgn);
3939
3940 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
3941 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3942 CAN_Sgn.UnsignedSgn &= 0x00000003;
3943 L4_MABX_B.SFunction1_o17_h = ((real_T) CAN_Sgn.UnsignedSgn);
3944
3945 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
3946 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3947 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
3948 CAN_Sgn.UnsignedSgn &= 0x00000003;
3949 L4_MABX_B.SFunction1_o18_k = ((real_T) CAN_Sgn.UnsignedSgn);
3950
3951 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
3952 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3953 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
3954 CAN_Sgn.UnsignedSgn &= 0x00000003;
3955 L4_MABX_B.SFunction1_o19_nj = ((real_T) CAN_Sgn.UnsignedSgn);
3956
3957 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
3958 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
3959 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
3960 CAN_Sgn.UnsignedSgn &= 0x00000003;
3961 L4_MABX_B.SFunction1_o20_l = ((real_T) CAN_Sgn.UnsignedSgn);
3962 }
3963 }
3964 } else {
3965 /* set RX status to 0 because no new message has arrived */
3966 L4_MABX_B.SFunction1_o21_d = 0.0;
3967 }
3968 }
3969 }
3970
3971 /* End of Constant: '<S416>/Constant' */
3972 /* End of Outputs for SubSystem: '<S493>/CCVS1_31' */
3973
3974 /* Outputs for Enabled SubSystem: '<S504>/EBC2_0B1' incorporates:
3975 * EnablePort: '<S505>/Enable'
3976 */
3977 /* Constant: '<S421>/Enable_RX_EBC2_0B' */
3978 if (L4_MABX_P.Enable_RX_EBC2_0B_Value) {
3979 /* S-Function (rti_commonblock): '<S505>/S-Function1' */
3980 /* This comment workarounds a code generation problem */
3981
3982 /* dSPACE RTICAN RX Message Block: "EBC2_0B" Id:419348235 */
3983 {
3984 UInt32 *CAN_Msg;
3985 static dsfloat time_old = 0.0;
3986
3987 /* Read status and timestamp info (previous message) */
3988 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].timestamp !=
3989 time_old) {
3990 /* ... save timestamp info for the calculation of the RX status
3991 during the consecutive sample hit*/
3992 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].
3993 timestamp;
3994
3995 /* ... set the processed flag to one */
3996 L4_MABX_B.SFunction1_o8_ea = 1.0;
3997 L4_MABX_B.SFunction1_o9_i = (real_T)
3998 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].timestamp;
3999 L4_MABX_B.SFunction1_o10_j = (real_T)
4000 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].deltatime;
4001 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEBF0B].data;
4002
4003 /* Decode CAN message */
4004 {
4005 {
4006 rtican_Signal_t CAN_Sgn;
4007
4008 /* ...... "FrontAxleSpeed" (0|16, standard signal, unsigned int, little endian) */
4009 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4010 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
4011 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4012 L4_MABX_B.SFunction1_o1_in = 0.00390625 * ( ((real_T)
4013 CAN_Sgn.UnsignedSgn) );
4014
4015 /* ...... "RelativeSpeedFrontAxleLeftWheel" (16|8, standard signal, unsigned int, little endian) */
4016 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4017 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4018 L4_MABX_B.SFunction1_o2_be = -7.8125 + ( 0.0625 * ( ((real_T)
4019 CAN_Sgn.UnsignedSgn) ) );
4020
4021 /* ...... "RlativeSpeedFrontAxleRightWheel" (24|8, standard signal, unsigned int, little endian) */
4022 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4023 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4024 L4_MABX_B.SFunction1_o3_lh = -7.8125 + ( 0.0625 * ( ((real_T)
4025 CAN_Sgn.UnsignedSgn) ) );
4026
4027 /* ...... "RelativeSpeedRearAxle1LeftWheel" (32|8, standard signal, unsigned int, little endian) */
4028 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4029 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4030 L4_MABX_B.SFunction1_o4_i2 = -7.8125 + ( 0.0625 * ( ((real_T)
4031 CAN_Sgn.UnsignedSgn) ) );
4032
4033 /* ...... "RlativeSpeedRearAxle1RightWheel" (40|8, standard signal, unsigned int, little endian) */
4034 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4035 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4036 L4_MABX_B.SFunction1_o5_hh = -7.8125 + ( 0.0625 * ( ((real_T)
4037 CAN_Sgn.UnsignedSgn) ) );
4038
4039 /* ...... "RelativeSpeedRearAxle2LeftWheel" (48|8, standard signal, unsigned int, little endian) */
4040 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4041 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4042 L4_MABX_B.SFunction1_o6_p = -7.8125 + ( 0.0625 * ( ((real_T)
4043 CAN_Sgn.UnsignedSgn) ) );
4044
4045 /* ...... "RlativeSpeedRearAxle2RightWheel" (56|8, standard signal, unsigned int, little endian) */
4046 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4047 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4048 L4_MABX_B.SFunction1_o7_ix = -7.8125 + ( 0.0625 * ( ((real_T)
4049 CAN_Sgn.UnsignedSgn) ) );
4050 }
4051 }
4052 } else {
4053 /* set RX status to 0 because no new message has arrived */
4054 L4_MABX_B.SFunction1_o8_ea = 0.0;
4055 }
4056 }
4057 }
4058
4059 /* End of Constant: '<S421>/Enable_RX_EBC2_0B' */
4060 /* End of Outputs for SubSystem: '<S504>/EBC2_0B1' */
4061
4062 /* Outputs for Enabled SubSystem: '<S562>/HRW_0B' incorporates:
4063 * EnablePort: '<S563>/Enable'
4064 */
4065 /* Constant: '<S428>/Enable_HRW_RX_0B' */
4066 if (L4_MABX_P.Enable_HRW_RX_0B_Value) {
4067 /* S-Function (rti_commonblock): '<S563>/S-Function1' */
4068 /* This comment workarounds a code generation problem */
4069
4070 /* dSPACE RTICAN RX Message Block: "HRW_0B" Id:150892043 */
4071 {
4072 UInt32 *CAN_Msg;
4073 static dsfloat time_old = 0.0;
4074
4075 /* Read status and timestamp info (previous message) */
4076 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].timestamp !=
4077 time_old) {
4078 /* ... save timestamp info for the calculation of the RX status
4079 during the consecutive sample hit*/
4080 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].
4081 timestamp;
4082
4083 /* ... set the processed flag to one */
4084 L4_MABX_B.SFunction1_o5_e = 1.0;
4085 L4_MABX_B.SFunction1_o6_f = (real_T)
4086 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].timestamp;
4087 L4_MABX_B.SFunction1_o7_lj = (real_T)
4088 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].deltatime;
4089 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x8FE6E0B].data;
4090
4091 /* Decode CAN message */
4092 {
4093 {
4094 rtican_Signal_t CAN_Sgn;
4095
4096 /* ...... "FrontAxleLeftWheelSpeed" (0|16, standard signal, unsigned int, little endian) */
4097 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4098 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
4099 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4100 L4_MABX_B.SFunction1_o1_bn = 0.00390625 * ( ((real_T)
4101 CAN_Sgn.UnsignedSgn) );
4102
4103 /* ...... "FrontAxleRightWheelSpeed" (16|16, standard signal, unsigned int, little endian) */
4104 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4105 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
4106 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4107 L4_MABX_B.SFunction1_o2_nn = 0.00390625 * ( ((real_T)
4108 CAN_Sgn.UnsignedSgn) );
4109
4110 /* ...... "RearAxleLeftWheelSpeed" (32|16, standard signal, unsigned int, little endian) */
4111 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4112 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
4113 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4114 L4_MABX_B.SFunction1_o3_ht = 0.00390625 * ( ((real_T)
4115 CAN_Sgn.UnsignedSgn) );
4116
4117 /* ...... "RearAxleRightWheelSpeed" (48|16, standard signal, unsigned int, little endian) */
4118 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4119 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
4120 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4121 L4_MABX_B.SFunction1_o4_da = 0.00390625 * ( ((real_T)
4122 CAN_Sgn.UnsignedSgn) );
4123 }
4124 }
4125 } else {
4126 /* set RX status to 0 because no new message has arrived */
4127 L4_MABX_B.SFunction1_o5_e = 0.0;
4128 }
4129 }
4130 }
4131
4132 /* End of Constant: '<S428>/Enable_HRW_RX_0B' */
4133 /* End of Outputs for SubSystem: '<S562>/HRW_0B' */
4134
4135 /* Outputs for Enabled SubSystem: '<S502>/EBC1_0B' incorporates:
4136 * EnablePort: '<S503>/Enable'
4137 */
4138 /* Constant: '<S420>/Constant1' */
4139 if (L4_MABX_P.Constant1_Value_ahf) {
4140 /* S-Function (rti_commonblock): '<S503>/S-Function1' */
4141 /* This comment workarounds a code generation problem */
4142
4143 /* dSPACE RTICAN RX Message Block: "EBC1_0B" Id:418382219 */
4144 {
4145 UInt32 *CAN_Msg;
4146 static dsfloat time_old = 0.0;
4147
4148 /* Read status and timestamp info (previous message) */
4149 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].timestamp !=
4150 time_old) {
4151 /* ... save timestamp info for the calculation of the RX status
4152 during the consecutive sample hit*/
4153 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].
4154 timestamp;
4155
4156 /* ... set the processed flag to one */
4157 L4_MABX_B.SFunction1_o23_e = 1.0;
4158 L4_MABX_B.SFunction1_o24_a = (real_T)
4159 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].timestamp;
4160 L4_MABX_B.SFunction1_o25_b = (real_T)
4161 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].deltatime;
4162 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18F0018B].data;
4163
4164 /* Decode CAN message */
4165 {
4166 {
4167 rtican_Signal_t CAN_Sgn;
4168
4169 /* ...... "ASREngCtrlActive" (0|2, standard signal, unsigned int, little endian) */
4170 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4171 CAN_Sgn.UnsignedSgn &= 0x00000003;
4172 L4_MABX_B.SFunction1_o1_br = ((real_T) CAN_Sgn.UnsignedSgn);
4173
4174 /* ...... "ASRBrakeCtrlActive" (2|2, standard signal, unsigned int, little endian) */
4175 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4176 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4177 CAN_Sgn.UnsignedSgn &= 0x00000003;
4178 L4_MABX_B.SFunction1_o2_ow = ((real_T) CAN_Sgn.UnsignedSgn);
4179
4180 /* ...... "AntiLockBrakingActive" (4|2, standard signal, unsigned int, little endian) */
4181 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4182 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4183 CAN_Sgn.UnsignedSgn &= 0x00000003;
4184 L4_MABX_B.SFunction1_o3_nk = ((real_T) CAN_Sgn.UnsignedSgn);
4185
4186 /* ...... "EBSBrakeSwitch" (6|2, standard signal, unsigned int, little endian) */
4187 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4188 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4189 CAN_Sgn.UnsignedSgn &= 0x00000003;
4190 L4_MABX_B.SFunction1_o4_o = ((real_T) CAN_Sgn.UnsignedSgn);
4191
4192 /* ...... "BrakePedalPos" (8|8, standard signal, unsigned int, little endian) */
4193 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4194 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4195 L4_MABX_B.SFunction1_o5_jlz = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4196 );
4197
4198 /* ...... "ABSOffroadSwitch" (16|2, standard signal, unsigned int, little endian) */
4199 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4200 CAN_Sgn.UnsignedSgn &= 0x00000003;
4201 L4_MABX_B.SFunction1_o6_ch = ((real_T) CAN_Sgn.UnsignedSgn);
4202
4203 /* ...... "ASROffroadSwitch" (18|2, standard signal, unsigned int, little endian) */
4204 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4205 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4206 CAN_Sgn.UnsignedSgn &= 0x00000003;
4207 L4_MABX_B.SFunction1_o7_h = ((real_T) CAN_Sgn.UnsignedSgn);
4208
4209 /* ...... "ASRHillHolderSwitch" (20|2, standard signal, unsigned int, little endian) */
4210 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4211 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4212 CAN_Sgn.UnsignedSgn &= 0x00000003;
4213 L4_MABX_B.SFunction1_o8_b = ((real_T) CAN_Sgn.UnsignedSgn);
4214
4215 /* ...... "TractionCtrlOverrideSwitch" (22|2, standard signal, unsigned int, little endian) */
4216 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4217 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4218 CAN_Sgn.UnsignedSgn &= 0x00000003;
4219 L4_MABX_B.SFunction1_o9_n5 = ((real_T) CAN_Sgn.UnsignedSgn);
4220
4221 /* ...... "AccelInterlockSwitch" (24|2, standard signal, unsigned int, little endian) */
4222 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4223 CAN_Sgn.UnsignedSgn &= 0x00000003;
4224 L4_MABX_B.SFunction1_o10_ai = ((real_T) CAN_Sgn.UnsignedSgn);
4225
4226 /* ...... "EngDerateSwitch" (26|2, standard signal, unsigned int, little endian) */
4227 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4228 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4229 CAN_Sgn.UnsignedSgn &= 0x00000003;
4230 L4_MABX_B.SFunction1_o11_o = ((real_T) CAN_Sgn.UnsignedSgn);
4231
4232 /* ...... "EngAuxShutdownSwitch" (28|2, standard signal, unsigned int, little endian) */
4233 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4234 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4235 CAN_Sgn.UnsignedSgn &= 0x00000003;
4236 L4_MABX_B.SFunction1_o12_c = ((real_T) CAN_Sgn.UnsignedSgn);
4237
4238 /* ...... "RemoteAccelEnableSwitch" (30|2, standard signal, unsigned int, little endian) */
4239 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4240 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4241 CAN_Sgn.UnsignedSgn &= 0x00000003;
4242 L4_MABX_B.SFunction1_o13_b = ((real_T) CAN_Sgn.UnsignedSgn);
4243
4244 /* ...... "EngRetarderSelection" (32|8, standard signal, unsigned int, little endian) */
4245 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4246 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4247 L4_MABX_B.SFunction1_o14_n = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
4248
4249 /* ...... "ABSFullyOperational" (40|2, standard signal, unsigned int, little endian) */
4250 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4251 CAN_Sgn.UnsignedSgn &= 0x00000003;
4252 L4_MABX_B.SFunction1_o15_i = ((real_T) CAN_Sgn.UnsignedSgn);
4253
4254 /* ...... "EBSRedWarningSignal" (42|2, standard signal, unsigned int, little endian) */
4255 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4256 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4257 CAN_Sgn.UnsignedSgn &= 0x00000003;
4258 L4_MABX_B.SFunction1_o16_c = ((real_T) CAN_Sgn.UnsignedSgn);
4259
4260 /* ...... "ABS_EBSAmberWarningSignal" (44|2, standard signal, unsigned int, little endian) */
4261 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4262 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4263 CAN_Sgn.UnsignedSgn &= 0x00000003;
4264 L4_MABX_B.SFunction1_o17_mb = ((real_T) CAN_Sgn.UnsignedSgn);
4265
4266 /* ...... "ATC_ASRInformationSignal" (46|2, standard signal, unsigned int, little endian) */
4267 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4268 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4269 CAN_Sgn.UnsignedSgn &= 0x00000003;
4270 L4_MABX_B.SFunction1_o18_g = ((real_T) CAN_Sgn.UnsignedSgn);
4271
4272 /* ...... "SrcAddrssOfCtrllngDvcFrBrkCntrl" (48|8, standard signal, unsigned int, little endian) */
4273 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4274 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4275 L4_MABX_B.SFunction1_o19_o = ((real_T) CAN_Sgn.UnsignedSgn);
4276
4277 /* ...... "HaltBrakeSwitch" (58|2, standard signal, unsigned int, little endian) */
4278 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4279 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4280 CAN_Sgn.UnsignedSgn &= 0x00000003;
4281 L4_MABX_B.SFunction1_o20_b = ((real_T) CAN_Sgn.UnsignedSgn);
4282
4283 /* ...... "TrailerABSStatus" (60|2, standard signal, unsigned int, little endian) */
4284 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4285 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4286 CAN_Sgn.UnsignedSgn &= 0x00000003;
4287 L4_MABX_B.SFunction1_o21_i = ((real_T) CAN_Sgn.UnsignedSgn);
4288
4289 /* ...... "TrctrMntdTrilerABSWarningSignal" (62|2, standard signal, unsigned int, little endian) */
4290 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4291 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4292 CAN_Sgn.UnsignedSgn &= 0x00000003;
4293 L4_MABX_B.SFunction1_o22_c = ((real_T) CAN_Sgn.UnsignedSgn);
4294 }
4295 }
4296 } else {
4297 /* set RX status to 0 because no new message has arrived */
4298 L4_MABX_B.SFunction1_o23_e = 0.0;
4299 }
4300 }
4301 }
4302
4303 /* End of Constant: '<S420>/Constant1' */
4304 /* End of Outputs for SubSystem: '<S502>/EBC1_0B' */
4305
4306 /* Outputs for Enabled SubSystem: '<S557>/ETC2_031' incorporates:
4307 * EnablePort: '<S558>/Enable'
4308 */
4309 /* Constant: '<S426>/Enable_RX_ETC2_03' */
4310 if (L4_MABX_P.Enable_RX_ETC2_03_Value) {
4311 /* S-Function (rti_commonblock): '<S558>/S-Function1' */
4312 /* This comment workarounds a code generation problem */
4313
4314 /* dSPACE RTICAN RX Message Block: "ETC2_03" Id:418383107 */
4315 {
4316 UInt32 *CAN_Msg;
4317 static dsfloat time_old = 0.0;
4318
4319 /* Read status and timestamp info (previous message) */
4320 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].timestamp !=
4321 time_old) {
4322 /* ... save timestamp info for the calculation of the RX status
4323 during the consecutive sample hit*/
4324 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].
4325 timestamp;
4326
4327 /* ... set the processed flag to one */
4328 L4_MABX_B.SFunction1_o4_mn = 1.0;
4329 L4_MABX_B.SFunction1_o5_jl = (real_T)
4330 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].timestamp;
4331 L4_MABX_B.SFunction1_o6_c = (real_T)
4332 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].deltatime;
4333 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F00503].data;
4334
4335 /* Decode CAN message */
4336 {
4337 {
4338 rtican_Signal_t CAN_Sgn;
4339
4340 /* ...... "SPN524_TransSelectedGear" (0|8, standard signal, unsigned int, little endian) */
4341 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4342 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4343 L4_MABX_B.SFunction1_o1_la = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4344 );
4345
4346 /* ...... "SPN526_TransActualGearRatio" (8|16, standard signal, unsigned int, little endian) */
4347 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4348 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
4349 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4350 L4_MABX_B.SFunction1_o2_n5 = 0.001 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4351 );
4352
4353 /* ...... "SPN523_TransCurrentGear" (24|8, standard signal, unsigned int, little endian) */
4354 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4355 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4356 L4_MABX_B.SFunction1_o3_lc = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4357 );
4358 }
4359 }
4360 } else {
4361 /* set RX status to 0 because no new message has arrived */
4362 L4_MABX_B.SFunction1_o4_mn = 0.0;
4363 }
4364 }
4365 }
4366
4367 /* End of Constant: '<S426>/Enable_RX_ETC2_03' */
4368 /* End of Outputs for SubSystem: '<S557>/ETC2_031' */
4369
4370 /* DataTypeConversion: '<S557>/Data Type Conversion1' */
4371 L4_MABX_B.SPN524_TransSelectedGear = L4_MABX_B.SFunction1_o1_la;
4372
4373 /* DataTypeConversion: '<S557>/Data Type Conversion2' */
4374 L4_MABX_B.SPN523_TransCurrentGear = L4_MABX_B.SFunction1_o3_lc;
4375
4376 /* DataTypeConversion: '<S557>/Data Type Conversion3' */
4377 L4_MABX_B.SPN526_TransActualGearRatio = L4_MABX_B.SFunction1_o2_n5;
4378
4379 /* Outputs for Enabled SubSystem: '<S551>/EEC1_001' incorporates:
4380 * EnablePort: '<S552>/Enable'
4381 */
4382 /* Constant: '<S423>/Enable_RX_EEC1_00' */
4383 if (L4_MABX_P.Enable_RX_EEC1_00_Value) {
4384 /* S-Function (rti_commonblock): '<S552>/S-Function1' */
4385 /* This comment workarounds a code generation problem */
4386
4387 /* dSPACE RTICAN RX Message Block: "EEC1_00" Id:217056256 */
4388 {
4389 UInt32 *CAN_Msg;
4390 static dsfloat time_old = 0.0;
4391
4392 /* Read status and timestamp info (previous message) */
4393 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].timestamp !=
4394 time_old) {
4395 /* ... save timestamp info for the calculation of the RX status
4396 during the consecutive sample hit*/
4397 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].
4398 timestamp;
4399
4400 /* ... set the processed flag to one */
4401 L4_MABX_B.SFunction1_o9_f = 1.0;
4402 L4_MABX_B.SFunction1_o10_l = (real_T)
4403 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].timestamp;
4404 L4_MABX_B.SFunction1_o11_ah = (real_T)
4405 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].deltatime;
4406 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF00400].data;
4407
4408 /* Decode CAN message */
4409 {
4410 {
4411 rtican_Signal_t CAN_Sgn;
4412
4413 /* ...... "EngTorqueMode" (0|4, standard signal, unsigned int, little endian) */
4414 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4415 CAN_Sgn.UnsignedSgn &= 0x0000000F;
4416 L4_MABX_B.SFunction1_o1_gr = ((real_T) CAN_Sgn.UnsignedSgn);
4417
4418 /* ...... "ActlEngPrcntTrqueHighResolution" (4|4, standard signal, unsigned int, little endian) */
4419 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4420 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4421 CAN_Sgn.UnsignedSgn &= 0x0000000F;
4422 L4_MABX_B.SFunction1_o2_b0 = 0.125 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4423 );
4424
4425 /* ...... "DriversDemandEngPercentTorque" (8|8, standard signal, unsigned int, little endian) */
4426 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4427 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4428 L4_MABX_B.SFunction1_o3_an = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4429 );
4430
4431 /* ...... "ActualEngPercentTorque" (16|8, standard signal, unsigned int, little endian) */
4432 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4433 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4434 L4_MABX_B.SFunction1_o4_k2 = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4435 );
4436
4437 /* ...... "EngSpeed" (24|16, standard signal, unsigned int, little endian) */
4438 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4439 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
4440 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4441 L4_MABX_B.SFunction1_o5_f1 = 0.125 * ( ((real_T) CAN_Sgn.UnsignedSgn)
4442 );
4443
4444 /* ...... "SrcAddrssOfCtrllngDvcFrEngCntrl" (40|8, standard signal, unsigned int, little endian) */
4445 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4446 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4447 L4_MABX_B.SFunction1_o6_kx = ((real_T) CAN_Sgn.UnsignedSgn);
4448
4449 /* ...... "EngStarterMode" (48|4, standard signal, unsigned int, little endian) */
4450 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4451 CAN_Sgn.UnsignedSgn &= 0x0000000F;
4452 L4_MABX_B.SFunction1_o7_f = ((real_T) CAN_Sgn.UnsignedSgn);
4453
4454 /* ...... "EngDemandPercentTorque" (56|8, standard signal, unsigned int, little endian) */
4455 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4456 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4457 L4_MABX_B.SFunction1_o8_e = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
4458 }
4459 }
4460 } else {
4461 /* set RX status to 0 because no new message has arrived */
4462 L4_MABX_B.SFunction1_o9_f = 0.0;
4463 }
4464 }
4465 }
4466
4467 /* End of Constant: '<S423>/Enable_RX_EEC1_00' */
4468 /* End of Outputs for SubSystem: '<S551>/EEC1_001' */
4469
4470 /* Outputs for Enabled SubSystem: '<S555>/EEC3_001' incorporates:
4471 * EnablePort: '<S556>/Enable'
4472 */
4473 /* Constant: '<S425>/Enable_RX_EEC3_00' */
4474 if (L4_MABX_P.Enable_RX_EEC3_00_Value) {
4475 /* S-Function (rti_commonblock): '<S556>/S-Function1' */
4476 /* This comment workarounds a code generation problem */
4477
4478 /* dSPACE RTICAN RX Message Block: "EEC3_00" Id:419356416 */
4479 {
4480 UInt32 *CAN_Msg;
4481 static dsfloat time_old = 0.0;
4482
4483 /* Read status and timestamp info (previous message) */
4484 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].timestamp !=
4485 time_old) {
4486 /* ... save timestamp info for the calculation of the RX status
4487 during the consecutive sample hit*/
4488 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].
4489 timestamp;
4490
4491 /* ... set the processed flag to one */
4492 L4_MABX_B.SFunction1_o3_jq = 1.0;
4493 L4_MABX_B.SFunction1_o4_if = (real_T)
4494 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].timestamp;
4495 L4_MABX_B.SFunction1_o5_n = (real_T)
4496 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].deltatime;
4497 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEDF00].data;
4498
4499 /* Decode CAN message */
4500 {
4501 {
4502 rtican_Signal_t CAN_Sgn;
4503
4504 /* ...... "SPN514_NominalFrictionPercentTorque" (0|8, standard signal, unsigned int, little endian) */
4505 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4506 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4507 L4_MABX_B.SFunction1_o1_do = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4508 );
4509
4510 /* ...... "SPN2978_EstEngParasiticLossesPercentTorque" (32|8, standard signal, unsigned int, little endian) */
4511 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4512 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4513 L4_MABX_B.SFunction1_o2_h0 = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
4514 );
4515 }
4516 }
4517 } else {
4518 /* set RX status to 0 because no new message has arrived */
4519 L4_MABX_B.SFunction1_o3_jq = 0.0;
4520 }
4521 }
4522 }
4523
4524 /* End of Constant: '<S425>/Enable_RX_EEC3_00' */
4525 /* End of Outputs for SubSystem: '<S555>/EEC3_001' */
4526
4527 /* DataTypeConversion: '<S555>/Data Type Conversion2' */
4528 L4_MABX_B.SPN514_NominalFrictionPercentTo = L4_MABX_B.SFunction1_o1_do;
4529
4530 /* DataTypeConversion: '<S555>/Data Type Conversion1' */
4531 L4_MABX_B.SPN2978_EstEngParasiticLossesPe = L4_MABX_B.SFunction1_o2_h0;
4532
4533 /* Outputs for Enabled SubSystem: '<S498>/CVW_0B1' incorporates:
4534 * EnablePort: '<S499>/Enable'
4535 */
4536 /* Constant: '<S418>/Constant' */
4537 if (L4_MABX_P.Constant_Value_jg1) {
4538 /* S-Function (rti_commonblock): '<S499>/S-Function1' */
4539 /* This comment workarounds a code generation problem */
4540
4541 /* dSPACE RTICAN RX Message Block: "CVW_0B" Id:419328011 */
4542 {
4543 UInt32 *CAN_Msg;
4544 static dsfloat time_old = 0.0;
4545
4546 /* Read status and timestamp info (previous message) */
4547 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].timestamp !=
4548 time_old) {
4549 /* ... save timestamp info for the calculation of the RX status
4550 during the consecutive sample hit*/
4551 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].
4552 timestamp;
4553
4554 /* ... set the processed flag to one */
4555 L4_MABX_B.SFunction1_o2_kwd = 1.0;
4556 L4_MABX_B.SFunction1_o3_lv = (real_T)
4557 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].timestamp;
4558 L4_MABX_B.SFunction1_o4_o1 = (real_T)
4559 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].deltatime;
4560 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE700B].data;
4561
4562 /* Decode CAN message */
4563 {
4564 {
4565 rtican_Signal_t CAN_Sgn;
4566
4567 /* ...... "SPN1760_GrossCombinationVehicleWeight" (16|16, standard signal, unsigned int, little endian) */
4568 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4569 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
4570 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4571 L4_MABX_B.SFunction1_o1_ly = 10 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
4572 }
4573 }
4574 } else {
4575 /* set RX status to 0 because no new message has arrived */
4576 L4_MABX_B.SFunction1_o2_kwd = 0.0;
4577 }
4578 }
4579 }
4580
4581 /* End of Constant: '<S418>/Constant' */
4582 /* End of Outputs for SubSystem: '<S498>/CVW_0B1' */
4583
4584 /* DataTypeConversion: '<S498>/Data Type Conversion1' */
4585 L4_MABX_B.SPN1760_GrossCombinationVehicle = L4_MABX_B.SFunction1_o1_ly;
4586
4587 /* Outputs for Enabled SubSystem: '<S479>/ACC1_2A_' incorporates:
4588 * EnablePort: '<S480>/Enable'
4589 */
4590 /* Constant: '<S409>/Constant' */
4591 if (L4_MABX_P.Constant_Value_fl) {
4592 /* S-Function (rti_commonblock): '<S480>/S-Function1' */
4593 /* This comment workarounds a code generation problem */
4594
4595 /* dSPACE RTICAN RX Message Block: "ACC1_2A" Id:285110058 */
4596 {
4597 UInt32 *CAN_Msg;
4598 static dsfloat time_old = 0.0;
4599
4600 /* Read status and timestamp info (previous message) */
4601 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].timestamp !=
4602 time_old) {
4603 /* ... save timestamp info for the calculation of the RX status
4604 during the consecutive sample hit*/
4605 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].
4606 timestamp;
4607
4608 /* ... set the processed flag to one */
4609 L4_MABX_B.SFunction1_o11_hg = 1.0;
4610 L4_MABX_B.SFunction1_o12_b = (real_T)
4611 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].timestamp;
4612 L4_MABX_B.SFunction1_o13_e = (real_T)
4613 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].deltatime;
4614 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x10FE6F2A].data;
4615
4616 /* Decode CAN message */
4617 {
4618 {
4619 rtican_Signal_t CAN_Sgn;
4620
4621 /* ...... "SpeedOfForwardVehicle" (0|8, standard signal, unsigned int, little endian) */
4622 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4623 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4624 L4_MABX_B.SFunction1_o1_du = ((real_T) CAN_Sgn.UnsignedSgn);
4625
4626 /* ...... "DistanceToForwardVehicle" (8|8, standard signal, unsigned int, little endian) */
4627 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4628 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4629 L4_MABX_B.SFunction1_o2_kv = ((real_T) CAN_Sgn.UnsignedSgn);
4630
4631 /* ...... "AdaptiveCruiseCtrlSetSpeed" (16|8, standard signal, unsigned int, little endian) */
4632 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4633 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4634 L4_MABX_B.SFunction1_o3_bf = ((real_T) CAN_Sgn.UnsignedSgn);
4635
4636 /* ...... "AdaptiveCruiseCtrlMode" (24|3, standard signal, unsigned int, little endian) */
4637 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4638 CAN_Sgn.UnsignedSgn &= 0x00000007;
4639 L4_MABX_B.SFunction1_o4_fr = ((real_T) CAN_Sgn.UnsignedSgn);
4640
4641 /* ...... "AdptveCruiseCtrlSetDistanceMode" (27|3, standard signal, unsigned int, little endian) */
4642 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4643 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 3;
4644 CAN_Sgn.UnsignedSgn &= 0x00000007;
4645 L4_MABX_B.SFunction1_o5_jg = ((real_T) CAN_Sgn.UnsignedSgn);
4646
4647 /* ...... "RoadCurvature" (32|16, standard signal, unsigned int, little endian) */
4648 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4649 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
4650 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
4651 L4_MABX_B.SFunction1_o6_fw = -250 + ( 0.0078125 * ( ((real_T)
4652 CAN_Sgn.UnsignedSgn) ) );
4653
4654 /* ...... "ACCTargetDetected" (48|2, standard signal, unsigned int, little endian) */
4655 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4656 CAN_Sgn.UnsignedSgn &= 0x00000003;
4657 L4_MABX_B.SFunction1_o7_p = ((real_T) CAN_Sgn.UnsignedSgn);
4658
4659 /* ...... "ACCSystemShutoffWarning" (50|2, standard signal, unsigned int, little endian) */
4660 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4661 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
4662 CAN_Sgn.UnsignedSgn &= 0x00000003;
4663 L4_MABX_B.SFunction1_o8_gw = ((real_T) CAN_Sgn.UnsignedSgn);
4664
4665 /* ...... "ACCDistanceAlertSignal" (52|2, standard signal, unsigned int, little endian) */
4666 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4667 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
4668 CAN_Sgn.UnsignedSgn &= 0x00000003;
4669 L4_MABX_B.SFunction1_o9_k = ((real_T) CAN_Sgn.UnsignedSgn);
4670
4671 /* ...... "ForwardCollisionWarning" (54|2, standard signal, unsigned int, little endian) */
4672 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4673 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
4674 CAN_Sgn.UnsignedSgn &= 0x00000003;
4675 L4_MABX_B.SFunction1_o10_j4 = ((real_T) CAN_Sgn.UnsignedSgn);
4676 }
4677 }
4678 } else {
4679 /* set RX status to 0 because no new message has arrived */
4680 L4_MABX_B.SFunction1_o11_hg = 0.0;
4681 }
4682 }
4683 }
4684
4685 /* End of Constant: '<S409>/Constant' */
4686 /* End of Outputs for SubSystem: '<S479>/ACC1_2A_' */
4687
4688 /* DataTypeConversion: '<S479>/Data Type Conversion12' */
4689 L4_MABX_B.ACCDistanceAlertSignal = L4_MABX_B.SFunction1_o9_k;
4690
4691 /* DataTypeConversion: '<S479>/Data Type Conversion13' */
4692 L4_MABX_B.ForwardCollisionWarning = L4_MABX_B.SFunction1_o10_j4;
4693
4694 /* RelationalOperator: '<S464>/Operator' incorporates:
4695 * Constant: '<S407>/Constant'
4696 * Constant: '<S462>/Constant'
4697 */
4698 L4_MABX_B.Operator_mma = (L4_MABX_P.Constant_Value_oo ==
4699 L4_MABX_P.Constant_Value_pi);
4700
4701 /* Outputs for Enabled SubSystem: '<S461>/CAN_TYPE1_RX_M1_C1' incorporates:
4702 * EnablePort: '<S463>/Enable'
4703 */
4704 if (L4_MABX_B.Operator_mma) {
4705 /* S-Function (rti_commonblock): '<S463>/S-Function1' */
4706 /* This comment workarounds a code generation problem */
4707
4708 /* dSPACE RTICAN RX Message Block: "TPCM_FF_00" Id:485293824 */
4709 {
4710 UInt32 *CAN_Msg;
4711 static dsfloat time_old = 0.0;
4712
4713 /* Read status and timestamp info (previous message) */
4714 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].timestamp !=
4715 time_old) {
4716 /* ... save timestamp info for the calculation of the RX status
4717 during the consecutive sample hit*/
4718 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].
4719 timestamp;
4720
4721 /* ... set the processed flag to one */
4722 L4_MABX_B.SFunction1_o9_e1 = 1.0;
4723 L4_MABX_B.SFunction1_o10_n = (real_T)
4724 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].timestamp;
4725 L4_MABX_B.SFunction1_o11_pr = (real_T)
4726 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].deltatime;
4727 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CECFF00].data;
4728
4729 /* Decode CAN message */
4730 {
4731 {
4732 rtican_Signal_t CAN_Sgn;
4733
4734 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
4735 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
4736 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4737 L4_MABX_B.SFunction1_o1_bs = ((real_T) CAN_Sgn.UnsignedSgn);
4738
4739 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
4740 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
4741 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4742 L4_MABX_B.SFunction1_o2_ao = ((real_T) CAN_Sgn.UnsignedSgn);
4743
4744 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
4745 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
4746 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4747 L4_MABX_B.SFunction1_o3_id = ((real_T) CAN_Sgn.UnsignedSgn);
4748
4749 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
4750 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
4751 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4752 L4_MABX_B.SFunction1_o4_d0 = ((real_T) CAN_Sgn.UnsignedSgn);
4753
4754 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
4755 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
4756 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4757 L4_MABX_B.SFunction1_o5_nc = ((real_T) CAN_Sgn.UnsignedSgn);
4758
4759 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
4760 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
4761 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4762 L4_MABX_B.SFunction1_o6_h = ((real_T) CAN_Sgn.UnsignedSgn);
4763
4764 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
4765 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
4766 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4767 L4_MABX_B.SFunction1_o7_nd = ((real_T) CAN_Sgn.UnsignedSgn);
4768
4769 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
4770 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
4771 CAN_Sgn.UnsignedSgn &= 0x000000FF;
4772 L4_MABX_B.SFunction1_o8_gj = ((real_T) CAN_Sgn.UnsignedSgn);
4773 }
4774 }
4775 } else {
4776 /* set RX status to 0 because no new message has arrived */
4777 L4_MABX_B.SFunction1_o9_e1 = 0.0;
4778 }
4779 }
4780 }
4781
4782 /* End of Outputs for SubSystem: '<S461>/CAN_TYPE1_RX_M1_C1' */
4783
4784 /* DataTypeConversion: '<S461>/Data Type Conversion' */
4785 PositionFinalLimited = L4_MABX_B.SFunction1_o1_bs;
4786 if (PositionFinalLimited < 256.0) {
4787 if (PositionFinalLimited >= 0.0) {
4788 starting_index = (uint8_T)PositionFinalLimited;
4789 } else {
4790 starting_index = 0U;
4791 }
4792 } else {
4793 starting_index = MAX_uint8_T;
4794 }
4795
4796 L4_MABX_B.DataTypeConversion_kt = starting_index;
4797
4798 /* End of DataTypeConversion: '<S461>/Data Type Conversion' */
4799
4800 /* DataTypeConversion: '<S461>/Data Type Conversion1' */
4801 PositionFinalLimited = L4_MABX_B.SFunction1_o2_ao;
4802 if (PositionFinalLimited < 256.0) {
4803 if (PositionFinalLimited >= 0.0) {
4804 starting_index = (uint8_T)PositionFinalLimited;
4805 } else {
4806 starting_index = 0U;
4807 }
4808 } else {
4809 starting_index = MAX_uint8_T;
4810 }
4811
4812 L4_MABX_B.DataTypeConversion1_du = starting_index;
4813
4814 /* End of DataTypeConversion: '<S461>/Data Type Conversion1' */
4815
4816 /* DataTypeConversion: '<S461>/Data Type Conversion2' */
4817 PositionFinalLimited = L4_MABX_B.SFunction1_o3_id;
4818 if (PositionFinalLimited < 256.0) {
4819 if (PositionFinalLimited >= 0.0) {
4820 starting_index = (uint8_T)PositionFinalLimited;
4821 } else {
4822 starting_index = 0U;
4823 }
4824 } else {
4825 starting_index = MAX_uint8_T;
4826 }
4827
4828 L4_MABX_B.DataTypeConversion2_jb = starting_index;
4829
4830 /* End of DataTypeConversion: '<S461>/Data Type Conversion2' */
4831
4832 /* DataTypeConversion: '<S461>/Data Type Conversion3' */
4833 PositionFinalLimited = L4_MABX_B.SFunction1_o4_d0;
4834 if (PositionFinalLimited < 256.0) {
4835 if (PositionFinalLimited >= 0.0) {
4836 starting_index = (uint8_T)PositionFinalLimited;
4837 } else {
4838 starting_index = 0U;
4839 }
4840 } else {
4841 starting_index = MAX_uint8_T;
4842 }
4843
4844 L4_MABX_B.DataTypeConversion3_f = starting_index;
4845
4846 /* End of DataTypeConversion: '<S461>/Data Type Conversion3' */
4847
4848 /* DataTypeConversion: '<S461>/Data Type Conversion4' */
4849 PositionFinalLimited = L4_MABX_B.SFunction1_o5_nc;
4850 if (PositionFinalLimited < 256.0) {
4851 if (PositionFinalLimited >= 0.0) {
4852 starting_index = (uint8_T)PositionFinalLimited;
4853 } else {
4854 starting_index = 0U;
4855 }
4856 } else {
4857 starting_index = MAX_uint8_T;
4858 }
4859
4860 L4_MABX_B.DataTypeConversion4_ii = starting_index;
4861
4862 /* End of DataTypeConversion: '<S461>/Data Type Conversion4' */
4863
4864 /* DataTypeConversion: '<S461>/Data Type Conversion5' */
4865 PositionFinalLimited = L4_MABX_B.SFunction1_o6_h;
4866 if (PositionFinalLimited < 256.0) {
4867 if (PositionFinalLimited >= 0.0) {
4868 starting_index = (uint8_T)PositionFinalLimited;
4869 } else {
4870 starting_index = 0U;
4871 }
4872 } else {
4873 starting_index = MAX_uint8_T;
4874 }
4875
4876 L4_MABX_B.DataTypeConversion5_b = starting_index;
4877
4878 /* End of DataTypeConversion: '<S461>/Data Type Conversion5' */
4879
4880 /* DataTypeConversion: '<S461>/Data Type Conversion6' */
4881 PositionFinalLimited = L4_MABX_B.SFunction1_o7_nd;
4882 if (PositionFinalLimited < 256.0) {
4883 if (PositionFinalLimited >= 0.0) {
4884 starting_index = (uint8_T)PositionFinalLimited;
4885 } else {
4886 starting_index = 0U;
4887 }
4888 } else {
4889 starting_index = MAX_uint8_T;
4890 }
4891
4892 L4_MABX_B.DataTypeConversion6_l = starting_index;
4893
4894 /* End of DataTypeConversion: '<S461>/Data Type Conversion6' */
4895
4896 /* DataTypeConversion: '<S461>/Data Type Conversion7' */
4897 PositionFinalLimited = L4_MABX_B.SFunction1_o8_gj;
4898 if (PositionFinalLimited < 256.0) {
4899 if (PositionFinalLimited >= 0.0) {
4900 starting_index = (uint8_T)PositionFinalLimited;
4901 } else {
4902 starting_index = 0U;
4903 }
4904 } else {
4905 starting_index = MAX_uint8_T;
4906 }
4907
4908 L4_MABX_B.DataTypeConversion7_o = starting_index;
4909
4910 /* End of DataTypeConversion: '<S461>/Data Type Conversion7' */
4911
4912 /* MultiPortSwitch: '<S407>/Multiport_Switch' */
4913 L4_MABX_B.RawData[0] = L4_MABX_B.DataTypeConversion_kt;
4914 L4_MABX_B.RawData[1] = L4_MABX_B.DataTypeConversion1_du;
4915 L4_MABX_B.RawData[2] = L4_MABX_B.DataTypeConversion2_jb;
4916 L4_MABX_B.RawData[3] = L4_MABX_B.DataTypeConversion3_f;
4917 L4_MABX_B.RawData[4] = L4_MABX_B.DataTypeConversion4_ii;
4918 L4_MABX_B.RawData[5] = L4_MABX_B.DataTypeConversion5_b;
4919 L4_MABX_B.RawData[6] = L4_MABX_B.DataTypeConversion6_l;
4920 L4_MABX_B.RawData[7] = L4_MABX_B.DataTypeConversion7_o;
4921
4922 /* DataTypeConversion: '<S455>/Data Type Conversion' */
4923 for (i = 0; i < 8; i++) {
4924 L4_MABX_B.DataTypeConversion_cg[i] = L4_MABX_B.RawData[i];
4925 }
4926
4927 /* End of DataTypeConversion: '<S455>/Data Type Conversion' */
4928
4929 /* RelationalOperator: '<S681>/Operator' incorporates:
4930 * Constant: '<S455>/Constant3'
4931 */
4932 L4_MABX_B.Operator_aie = (L4_MABX_B.DataTypeConversion_cg[0] ==
4933 L4_MABX_P.Constant3_Value_g0);
4934
4935 /* Outputs for Enabled SubSystem: '<S455>/Decode_TPCM_BAM' incorporates:
4936 * EnablePort: '<S673>/Enable'
4937 */
4938 if (L4_MABX_B.Operator_aie) {
4939 /* SignalConversion: '<S684>/Signal Conversion' */
4940 L4_MABX_B.SPN2556_ControlByte_l = L4_MABX_B.DataTypeConversion_cg[0];
4941
4942 /* DataTypeConversion: '<S685>/Data Type Conversion' */
4943 L4_MABX_B.DataTypeConversion_mb = L4_MABX_B.DataTypeConversion_cg[1];
4944
4945 /* DataTypeConversion: '<S685>/Data Type Conversion1' */
4946 L4_MABX_B.DataTypeConversion1_gc = L4_MABX_B.DataTypeConversion_cg[2];
4947
4948 /* ArithShift: '<S685>/Shift Arithmetic2' */
4949 L4_MABX_B.ShiftArithmetic2_h = (uint16_T)(L4_MABX_B.DataTypeConversion1_gc <<
4950 8);
4951
4952 /* S-Function (sfix_bitop): '<S688>/Operator' */
4953 L4_MABX_B.Operator_ml = (uint16_T)(L4_MABX_B.DataTypeConversion_mb |
4954 L4_MABX_B.ShiftArithmetic2_h);
4955
4956 /* DataTypeConversion: '<S688>/DataType' */
4957 L4_MABX_B.DataType_af = L4_MABX_B.Operator_ml;
4958
4959 /* SignalConversion: '<S686>/Signal Conversion' */
4960 L4_MABX_B.SPN2568_TotalNumberOfPackets = L4_MABX_B.DataTypeConversion_cg[3];
4961
4962 /* DataTypeConversion: '<S687>/Data Type Conversion' */
4963 L4_MABX_B.DataTypeConversion_di = L4_MABX_B.DataTypeConversion_cg[5];
4964
4965 /* DataTypeConversion: '<S687>/Data Type Conversion1' */
4966 L4_MABX_B.DataTypeConversion1_n4 = L4_MABX_B.DataTypeConversion_cg[6];
4967
4968 /* DataTypeConversion: '<S687>/Data Type Conversion2' */
4969 L4_MABX_B.DataTypeConversion2_pl = L4_MABX_B.DataTypeConversion_cg[7];
4970
4971 /* ArithShift: '<S687>/Shift Arithmetic1' */
4972 L4_MABX_B.ShiftArithmetic1_b = L4_MABX_B.DataTypeConversion1_n4 << 8;
4973
4974 /* ArithShift: '<S687>/Shift Arithmetic2' */
4975 L4_MABX_B.ShiftArithmetic2_m = L4_MABX_B.DataTypeConversion2_pl << 16;
4976
4977 /* S-Function (sfix_bitop): '<S689>/Operator' */
4978 L4_MABX_B.Operator_p = L4_MABX_B.DataTypeConversion_di |
4979 L4_MABX_B.ShiftArithmetic1_b | L4_MABX_B.ShiftArithmetic2_m;
4980
4981 /* DataTypeConversion: '<S689>/DataType' */
4982 L4_MABX_B.DataType_om = L4_MABX_B.Operator_p;
4983 }
4984
4985 /* End of Outputs for SubSystem: '<S455>/Decode_TPCM_BAM' */
4986
4987 /* RelationalOperator: '<S473>/Operator' incorporates:
4988 * Constant: '<S408>/Constant'
4989 * Constant: '<S471>/Constant'
4990 */
4991 L4_MABX_B.Operator_k3v = (L4_MABX_P.Constant_Value_b1 ==
4992 L4_MABX_P.Constant_Value_m2);
4993
4994 /* Outputs for Enabled SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' incorporates:
4995 * EnablePort: '<S472>/Enable'
4996 */
4997 if (L4_MABX_B.Operator_k3v) {
4998 /* S-Function (rti_commonblock): '<S472>/S-Function1' */
4999 /* This comment workarounds a code generation problem */
5000
5001 /* dSPACE RTICAN RX Message Block: "TPDT_FF_00" Id:485228288 */
5002 {
5003 UInt32 *CAN_Msg;
5004 static dsfloat time_old = 0.0;
5005
5006 /* Read status and timestamp info (previous message) */
5007 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].timestamp !=
5008 time_old) {
5009 /* ... save timestamp info for the calculation of the RX status
5010 during the consecutive sample hit*/
5011 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].
5012 timestamp;
5013
5014 /* ... set the processed flag to one */
5015 L4_MABX_B.SFunction1_o9_ms = 1.0;
5016 L4_MABX_B.SFunction1_o10_o = (real_T)
5017 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].timestamp;
5018 L4_MABX_B.SFunction1_o11_p = (real_T)
5019 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].deltatime;
5020 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x1CEBFF00].data;
5021
5022 /* Decode CAN message */
5023 {
5024 {
5025 rtican_Signal_t CAN_Sgn;
5026
5027 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
5028 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5029 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5030 L4_MABX_B.SFunction1_o1_os = ((real_T) CAN_Sgn.UnsignedSgn);
5031
5032 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
5033 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5034 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5035 L4_MABX_B.SFunction1_o2_iaz = ((real_T) CAN_Sgn.UnsignedSgn);
5036
5037 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
5038 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5039 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5040 L4_MABX_B.SFunction1_o3_h5 = ((real_T) CAN_Sgn.UnsignedSgn);
5041
5042 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
5043 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5044 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5045 L4_MABX_B.SFunction1_o4_fi = ((real_T) CAN_Sgn.UnsignedSgn);
5046
5047 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
5048 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
5049 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5050 L4_MABX_B.SFunction1_o5_jm = ((real_T) CAN_Sgn.UnsignedSgn);
5051
5052 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
5053 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5054 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5055 L4_MABX_B.SFunction1_o6_mp = ((real_T) CAN_Sgn.UnsignedSgn);
5056
5057 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
5058 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5059 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5060 L4_MABX_B.SFunction1_o7_b3 = ((real_T) CAN_Sgn.UnsignedSgn);
5061
5062 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
5063 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
5064 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5065 L4_MABX_B.SFunction1_o8_fc = ((real_T) CAN_Sgn.UnsignedSgn);
5066 }
5067 }
5068 } else {
5069 /* set RX status to 0 because no new message has arrived */
5070 L4_MABX_B.SFunction1_o9_ms = 0.0;
5071 }
5072 }
5073 }
5074
5075 /* End of Outputs for SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' */
5076
5077 /* DataTypeConversion: '<S470>/Data Type Conversion' */
5078 PositionFinalLimited = L4_MABX_B.SFunction1_o1_os;
5079 if (PositionFinalLimited < 256.0) {
5080 if (PositionFinalLimited >= 0.0) {
5081 starting_index = (uint8_T)PositionFinalLimited;
5082 } else {
5083 starting_index = 0U;
5084 }
5085 } else {
5086 starting_index = MAX_uint8_T;
5087 }
5088
5089 L4_MABX_B.DataTypeConversion_be = starting_index;
5090
5091 /* End of DataTypeConversion: '<S470>/Data Type Conversion' */
5092
5093 /* DataTypeConversion: '<S470>/Data Type Conversion1' */
5094 PositionFinalLimited = L4_MABX_B.SFunction1_o2_iaz;
5095 if (PositionFinalLimited < 256.0) {
5096 if (PositionFinalLimited >= 0.0) {
5097 starting_index = (uint8_T)PositionFinalLimited;
5098 } else {
5099 starting_index = 0U;
5100 }
5101 } else {
5102 starting_index = MAX_uint8_T;
5103 }
5104
5105 L4_MABX_B.DataTypeConversion1_fq = starting_index;
5106
5107 /* End of DataTypeConversion: '<S470>/Data Type Conversion1' */
5108
5109 /* DataTypeConversion: '<S470>/Data Type Conversion2' */
5110 PositionFinalLimited = L4_MABX_B.SFunction1_o3_h5;
5111 if (PositionFinalLimited < 256.0) {
5112 if (PositionFinalLimited >= 0.0) {
5113 starting_index = (uint8_T)PositionFinalLimited;
5114 } else {
5115 starting_index = 0U;
5116 }
5117 } else {
5118 starting_index = MAX_uint8_T;
5119 }
5120
5121 L4_MABX_B.DataTypeConversion2_p0 = starting_index;
5122
5123 /* End of DataTypeConversion: '<S470>/Data Type Conversion2' */
5124
5125 /* DataTypeConversion: '<S470>/Data Type Conversion3' */
5126 PositionFinalLimited = L4_MABX_B.SFunction1_o4_fi;
5127 if (PositionFinalLimited < 256.0) {
5128 if (PositionFinalLimited >= 0.0) {
5129 starting_index = (uint8_T)PositionFinalLimited;
5130 } else {
5131 starting_index = 0U;
5132 }
5133 } else {
5134 starting_index = MAX_uint8_T;
5135 }
5136
5137 L4_MABX_B.DataTypeConversion3_cy = starting_index;
5138
5139 /* End of DataTypeConversion: '<S470>/Data Type Conversion3' */
5140
5141 /* DataTypeConversion: '<S470>/Data Type Conversion4' */
5142 PositionFinalLimited = L4_MABX_B.SFunction1_o5_jm;
5143 if (PositionFinalLimited < 256.0) {
5144 if (PositionFinalLimited >= 0.0) {
5145 starting_index = (uint8_T)PositionFinalLimited;
5146 } else {
5147 starting_index = 0U;
5148 }
5149 } else {
5150 starting_index = MAX_uint8_T;
5151 }
5152
5153 L4_MABX_B.DataTypeConversion4_lt = starting_index;
5154
5155 /* End of DataTypeConversion: '<S470>/Data Type Conversion4' */
5156
5157 /* DataTypeConversion: '<S470>/Data Type Conversion5' */
5158 PositionFinalLimited = L4_MABX_B.SFunction1_o6_mp;
5159 if (PositionFinalLimited < 256.0) {
5160 if (PositionFinalLimited >= 0.0) {
5161 starting_index = (uint8_T)PositionFinalLimited;
5162 } else {
5163 starting_index = 0U;
5164 }
5165 } else {
5166 starting_index = MAX_uint8_T;
5167 }
5168
5169 L4_MABX_B.DataTypeConversion5_hx = starting_index;
5170
5171 /* End of DataTypeConversion: '<S470>/Data Type Conversion5' */
5172
5173 /* DataTypeConversion: '<S470>/Data Type Conversion6' */
5174 PositionFinalLimited = L4_MABX_B.SFunction1_o7_b3;
5175 if (PositionFinalLimited < 256.0) {
5176 if (PositionFinalLimited >= 0.0) {
5177 starting_index = (uint8_T)PositionFinalLimited;
5178 } else {
5179 starting_index = 0U;
5180 }
5181 } else {
5182 starting_index = MAX_uint8_T;
5183 }
5184
5185 L4_MABX_B.DataTypeConversion6_ix = starting_index;
5186
5187 /* End of DataTypeConversion: '<S470>/Data Type Conversion6' */
5188
5189 /* DataTypeConversion: '<S470>/Data Type Conversion7' */
5190 PositionFinalLimited = L4_MABX_B.SFunction1_o8_fc;
5191 if (PositionFinalLimited < 256.0) {
5192 if (PositionFinalLimited >= 0.0) {
5193 starting_index = (uint8_T)PositionFinalLimited;
5194 } else {
5195 starting_index = 0U;
5196 }
5197 } else {
5198 starting_index = MAX_uint8_T;
5199 }
5200
5201 L4_MABX_B.DataTypeConversion7_l = starting_index;
5202
5203 /* End of DataTypeConversion: '<S470>/Data Type Conversion7' */
5204
5205 /* MultiPortSwitch: '<S408>/Multiport_Switch' */
5206 L4_MABX_B.RawData_k[0] = L4_MABX_B.DataTypeConversion_be;
5207 L4_MABX_B.RawData_k[1] = L4_MABX_B.DataTypeConversion1_fq;
5208 L4_MABX_B.RawData_k[2] = L4_MABX_B.DataTypeConversion2_p0;
5209 L4_MABX_B.RawData_k[3] = L4_MABX_B.DataTypeConversion3_cy;
5210 L4_MABX_B.RawData_k[4] = L4_MABX_B.DataTypeConversion4_lt;
5211 L4_MABX_B.RawData_k[5] = L4_MABX_B.DataTypeConversion5_hx;
5212 L4_MABX_B.RawData_k[6] = L4_MABX_B.DataTypeConversion6_ix;
5213 L4_MABX_B.RawData_k[7] = L4_MABX_B.DataTypeConversion7_l;
5214
5215 /* DataTypeConversion: '<S456>/Data Type Conversion' */
5216 for (i = 0; i < 8; i++) {
5217 L4_MABX_B.DataTypeConversion_j[i] = L4_MABX_B.RawData_k[i];
5218 }
5219
5220 /* End of DataTypeConversion: '<S456>/Data Type Conversion' */
5221
5222 /* S-Function (rti_commonblock): '<S814>/S-Function1' */
5223
5224 /* This comment workarounds a code generation problem */
5225
5226 /* End of Outputs for S-Function (rti_commonblock): '<S814>/S-Function1' */
5227
5228 /* RateTransition: '<S403>/Rate Transition' */
5229 switch (L4_MABX_DW.RateTransition_write_buf) {
5230 case 0:
5231 L4_MABX_DW.RateTransition_read_buf = 1;
5232 break;
5233
5234 case 1:
5235 L4_MABX_DW.RateTransition_read_buf = 0;
5236 break;
5237
5238 default:
5239 L4_MABX_DW.RateTransition_read_buf = L4_MABX_DW.RateTransition_last_buf_wr;
5240 break;
5241 }
5242
5243 if (L4_MABX_DW.RateTransition_read_buf != 0) {
5244 GLB_Absolute_Timestamp = L4_MABX_DW.RateTransition_Buffer1;
5245 } else {
5246 GLB_Absolute_Timestamp = L4_MABX_DW.RateTransition_Buffer0;
5247 }
5248
5249 L4_MABX_DW.RateTransition_read_buf = -1;
5250
5251 /* End of RateTransition: '<S403>/Rate Transition' */
5252
5253 /* DataTypeConversion: '<S470>/Data Type Conversion8' */
5254 L4_MABX_B.RX_status = (L4_MABX_B.SFunction1_o9_ms != 0.0);
5255
5256 /* MultiPortSwitch: '<S408>/Multiport_Switch' */
5257 L4_MABX_B.RX_status_a = L4_MABX_B.RX_status;
5258
5259 /* RelationalOperator: '<S508>/Operator' incorporates:
5260 * Constant: '<S422>/Constant2'
5261 */
5262 L4_MABX_B.Operator_m0 = (L4_MABX_B.DataType_om == L4_MABX_P.Constant2_Value_mw);
5263
5264 /* Logic: '<S422>/Logical Operator' */
5265 L4_MABX_B.LogicalOperator_h = (L4_MABX_B.RX_status_a && L4_MABX_B.Operator_m0);
5266
5267 /* Outputs for Enabled SubSystem: '<S422>/CAN_RX_EC1_00' incorporates:
5268 * EnablePort: '<S506>/Enable'
5269 */
5270 if (L4_MABX_B.LogicalOperator_h) {
5271 /* UnitDelay: '<S506>/Unit Delay' */
5272 for (i = 0; i < 39; i++) {
5273 L4_MABX_B.UnitDelay_k0[i] = L4_MABX_DW.UnitDelay_DSTATE_hw[i];
5274 }
5275
5276 /* End of UnitDelay: '<S506>/Unit Delay' */
5277
5278 /* MATLAB Function: '<S506>/serialize_tpdt' */
5279 /* MATLAB Function 'INPUTS_PIC_KW/CAN_PIC_KW/CAN_RX_EC1_00/CAN_RX_EC1_00/serialize_tpdt': '<S510>:1' */
5280 /* '<S510>:1:9' */
5281 if (L4_MABX_B.DataTypeConversion_j[0] > 1) {
5282 /* '<S510>:1:6' */
5283 /* '<S510>:1:7' */
5284 for (i = 0; i < 39; i++) {
5285 L4_MABX_B.Data_b[i] = L4_MABX_B.UnitDelay_k0[i];
5286 }
5287 } else {
5288 /* '<S510>:1:9' */
5289 for (i = 0; i < 39; i++) {
5290 L4_MABX_B.Data_b[i] = MAX_uint8_T;
5291 }
5292 }
5293
5294 /* '<S510>:1:11' */
5295 i = (int32_T)(7U * L4_MABX_B.DataTypeConversion_j[0]);
5296 if ((uint32_T)i > 255U) {
5297 i = 255;
5298 }
5299
5300 tmp = i - 6U;
5301 if (tmp > (uint32_T)i) {
5302 tmp = 0U;
5303 }
5304
5305 i = (int32_T)tmp;
5306 starting_index = (uint8_T)i;
5307
5308 /* '<S510>:1:12' */
5309 L4_MABX_B.Data_b[starting_index - 1] = L4_MABX_B.DataTypeConversion_j[1];
5310 L4_MABX_B.Data_b[starting_index] = L4_MABX_B.DataTypeConversion_j[2];
5311 L4_MABX_B.Data_b[starting_index + 1] = L4_MABX_B.DataTypeConversion_j[3];
5312 L4_MABX_B.Data_b[starting_index + 2] = L4_MABX_B.DataTypeConversion_j[4];
5313 L4_MABX_B.Data_b[starting_index + 3] = L4_MABX_B.DataTypeConversion_j[5];
5314 L4_MABX_B.Data_b[starting_index + 4] = L4_MABX_B.DataTypeConversion_j[6];
5315 L4_MABX_B.Data_b[starting_index + 5] = L4_MABX_B.DataTypeConversion_j[7];
5316
5317 /* '<S510>:1:13' */
5318 L4_MABX_B.RX_status_l = (L4_MABX_B.DataTypeConversion_j[0] ==
5319 L4_MABX_B.SPN2568_TotalNumberOfPackets);
5320
5321 /* End of MATLAB Function: '<S506>/serialize_tpdt' */
5322
5323 /* Outputs for Enabled SubSystem: '<S506>/Decode' incorporates:
5324 * EnablePort: '<S509>/Enable'
5325 */
5326 if (L4_MABX_B.RX_status_l) {
5327 /* Inport: '<S509>/Inport' */
5328 for (i = 0; i < 39; i++) {
5329 L4_MABX_B.Inport_k[i] = L4_MABX_B.Data_b[i];
5330 }
5331
5332 /* End of Inport: '<S509>/Inport' */
5333
5334 /* Inport: '<S509>/timeStamp' */
5335 L4_MABX_B.timeStamp_b = GLB_Absolute_Timestamp;
5336
5337 /* UnitDelay: '<S509>/Unit_Delay' */
5338 L4_MABX_B.Unit_Delay_n = L4_MABX_DW.Unit_Delay_DSTATE_k;
5339
5340 /* Sum: '<S509>/Subtract' */
5341 L4_MABX_B.Subtract_e = (real32_T)(L4_MABX_B.timeStamp_b -
5342 L4_MABX_B.Unit_Delay_n);
5343 }
5344
5345 /* End of Outputs for SubSystem: '<S506>/Decode' */
5346 }
5347
5348 /* End of Outputs for SubSystem: '<S422>/CAN_RX_EC1_00' */
5349
5350 /* DataTypeConversion: '<S507>/Data Type Conversion' */
5351 for (i = 0; i < 39; i++) {
5352 L4_MABX_B.DataTypeConversion_j3[i] = L4_MABX_B.Inport_k[i];
5353 }
5354
5355 /* End of DataTypeConversion: '<S507>/Data Type Conversion' */
5356
5357 /* DataTypeConversion: '<S518>/Data Type Conversion' */
5358 L4_MABX_B.DataTypeConversion_p1 = L4_MABX_B.DataTypeConversion_j3[19];
5359
5360 /* DataTypeConversion: '<S518>/Data Type Conversion1' */
5361 L4_MABX_B.DataTypeConversion1_p = L4_MABX_B.DataTypeConversion_j3[20];
5362
5363 /* ArithShift: '<S518>/Shift Arithmetic' */
5364 L4_MABX_B.ShiftArithmetic = (uint16_T)(L4_MABX_B.DataTypeConversion1_p << 8);
5365
5366 /* S-Function (sfix_bitop): '<S543>/Operator' */
5367 L4_MABX_B.Operator_ef = (uint16_T)(L4_MABX_B.DataTypeConversion_p1 |
5368 L4_MABX_B.ShiftArithmetic);
5369
5370 /* DataTypeConversion: '<S543>/DataType' */
5371 L4_MABX_B.DataType_l = L4_MABX_B.Operator_ef;
5372
5373 /* DataTypeConversion: '<S518>/Data Type Conversion2' */
5374 L4_MABX_B.SPN544_EngineReferenceTorque = L4_MABX_B.DataType_l;
5375
5376 /* Outputs for Enabled SubSystem: '<S628>/VDC1_0B_' incorporates:
5377 * EnablePort: '<S629>/Enable'
5378 */
5379 /* Constant: '<S442>/Constant' */
5380 if (L4_MABX_P.Constant_Value_os) {
5381 /* S-Function (rti_commonblock): '<S629>/S-Function1' */
5382 /* This comment workarounds a code generation problem */
5383
5384 /* dSPACE RTICAN RX Message Block: "VDC1_0B" Id:419319563 */
5385 {
5386 UInt32 *CAN_Msg;
5387 static dsfloat time_old = 0.0;
5388
5389 /* Read status and timestamp info (previous message) */
5390 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].timestamp !=
5391 time_old) {
5392 /* ... save timestamp info for the calculation of the RX status
5393 during the consecutive sample hit*/
5394 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].
5395 timestamp;
5396
5397 /* ... set the processed flag to one */
5398 L4_MABX_B.SFunction1_o8_i = 1.0;
5399 L4_MABX_B.SFunction1_o9_e = (real_T)
5400 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].timestamp;
5401 L4_MABX_B.SFunction1_o10 = (real_T)
5402 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].deltatime;
5403 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FE4F0B].data;
5404
5405 /* Decode CAN message */
5406 {
5407 {
5408 rtican_Signal_t CAN_Sgn;
5409
5410 /* ...... "VDCInformationSignal" (0|2, standard signal, unsigned int, little endian) */
5411 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5412 CAN_Sgn.UnsignedSgn &= 0x00000003;
5413 L4_MABX_B.SFunction1_o1_jf = ((real_T) CAN_Sgn.UnsignedSgn);
5414
5415 /* ...... "VDCFullyOperational" (2|2, standard signal, unsigned int, little endian) */
5416 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5417 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
5418 CAN_Sgn.UnsignedSgn &= 0x00000003;
5419 L4_MABX_B.SFunction1_o2_ih = ((real_T) CAN_Sgn.UnsignedSgn);
5420
5421 /* ...... "VDCBrakeLightRq" (4|2, standard signal, unsigned int, little endian) */
5422 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5423 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5424 CAN_Sgn.UnsignedSgn &= 0x00000003;
5425 L4_MABX_B.SFunction1_o3_b = ((real_T) CAN_Sgn.UnsignedSgn);
5426
5427 /* ...... "ROPEngCtrlActive" (8|2, standard signal, unsigned int, little endian) */
5428 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5429 CAN_Sgn.UnsignedSgn &= 0x00000003;
5430 L4_MABX_B.SFunction1_o4_gk = ((real_T) CAN_Sgn.UnsignedSgn);
5431
5432 /* ...... "ROPBrakeCtrlActive" (10|2, standard signal, unsigned int, little endian) */
5433 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5434 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
5435 CAN_Sgn.UnsignedSgn &= 0x00000003;
5436 L4_MABX_B.SFunction1_o5_a = ((real_T) CAN_Sgn.UnsignedSgn);
5437
5438 /* ...... "YCEngCtrlActive" (12|2, standard signal, unsigned int, little endian) */
5439 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5440 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5441 CAN_Sgn.UnsignedSgn &= 0x00000003;
5442 L4_MABX_B.SFunction1_o6_g = ((real_T) CAN_Sgn.UnsignedSgn);
5443
5444 /* ...... "YCBrakeCtrlActive" (14|2, standard signal, unsigned int, little endian) */
5445 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5446 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
5447 CAN_Sgn.UnsignedSgn &= 0x00000003;
5448 L4_MABX_B.SFunction1_o7_g = ((real_T) CAN_Sgn.UnsignedSgn);
5449 }
5450 }
5451 } else {
5452 /* set RX status to 0 because no new message has arrived */
5453 L4_MABX_B.SFunction1_o8_i = 0.0;
5454 }
5455 }
5456 }
5457
5458 /* End of Constant: '<S442>/Constant' */
5459 /* End of Outputs for SubSystem: '<S628>/VDC1_0B_' */
5460
5461 /* Outputs for Enabled SubSystem: '<S630>/VDC2_0B1' incorporates:
5462 * EnablePort: '<S631>/Enable'
5463 */
5464 /* Constant: '<S443>/Constant' */
5465 if (L4_MABX_P.Constant_Value_fd) {
5466 /* S-Function (rti_commonblock): '<S631>/S-Function1' */
5467 /* This comment workarounds a code generation problem */
5468
5469 /* dSPACE RTICAN RX Message Block: "VDC2_0B" Id:418384139 */
5470 {
5471 UInt32 *CAN_Msg;
5472 static dsfloat time_old = 0.0;
5473
5474 /* Read status and timestamp info (previous message) */
5475 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].timestamp !=
5476 time_old) {
5477 /* ... save timestamp info for the calculation of the RX status
5478 during the consecutive sample hit*/
5479 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].
5480 timestamp;
5481
5482 /* ... set the processed flag to one */
5483 L4_MABX_B.SFunction1_o7_e = 1.0;
5484 L4_MABX_B.SFunction1_o8_o = (real_T)
5485 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].timestamp;
5486 L4_MABX_B.SFunction1_o9 = (real_T)
5487 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].deltatime;
5488 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0090B].data;
5489
5490 /* Decode CAN message */
5491 {
5492 {
5493 rtican_Signal_t CAN_Sgn;
5494
5495 /* ...... "SteerWheelAngle" (0|16, standard signal, unsigned int, little endian) */
5496 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5497 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
5498 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
5499 SteerWheelAngle = -31.374 + ( 0.0009765625 * ( ((real_T)
5500 CAN_Sgn.UnsignedSgn) ) );
5501
5502 /* ...... "SteerWheelTurnCounter" (16|6, standard signal, unsigned int, little endian) */
5503 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5504 CAN_Sgn.UnsignedSgn &= 0x0000003F;
5505 L4_MABX_B.SFunction1_o2_pd = -32 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
5506
5507 /* ...... "SteerWheelAngleSensorType" (22|2, standard signal, unsigned int, little endian) */
5508 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5509 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
5510 CAN_Sgn.UnsignedSgn &= 0x00000003;
5511 L4_MABX_B.SFunction1_o3_ig = ((real_T) CAN_Sgn.UnsignedSgn);
5512
5513 /* ...... "YawRate" (24|16, standard signal, unsigned int, little endian) */
5514 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5515 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
5516 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
5517 YawRate = -3.92 + ( 0.0001220703125 * ( ((real_T)
5518 CAN_Sgn.UnsignedSgn) ) );
5519
5520 /* ...... "LateralAcceleration" (40|16, standard signal, unsigned int, little endian) */
5521 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5522 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
5523 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
5524 L4_MABX_B.SFunction1_o5_m = -15.687 + ( 0.00048828125 * ( ((real_T)
5525 CAN_Sgn.UnsignedSgn) ) );
5526
5527 /* ...... "LongitudinalAcceleration" (56|8, standard signal, unsigned int, little endian) */
5528 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
5529 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5530 SPN1810_LongitudinalAcceleration = -12.5 + ( 0.1 * ( ((real_T)
5531 CAN_Sgn.UnsignedSgn) ) );
5532 }
5533 }
5534 } else {
5535 /* set RX status to 0 because no new message has arrived */
5536 L4_MABX_B.SFunction1_o7_e = 0.0;
5537 }
5538 }
5539 }
5540
5541 /* End of Constant: '<S443>/Constant' */
5542 /* End of Outputs for SubSystem: '<S630>/VDC2_0B1' */
5543
5544 /* UnitDelay: '<S635>/Unit_Delay3' */
5545 L4_MABX_B.Unit_Delay3 = L4_MABX_DW.Unit_Delay3_DSTATE;
5546
5547 /* RelationalOperator: '<S636>/Operator' incorporates:
5548 * Constant: '<S445>/Constant2'
5549 */
5550 L4_MABX_B.Operator_lf = (L4_MABX_B.DataType_om == L4_MABX_P.Constant2_Value_c1);
5551
5552 /* Logic: '<S445>/Logical Operator' */
5553 L4_MABX_B.LogicalOperator_hz = (L4_MABX_B.RX_status_a && L4_MABX_B.Operator_lf);
5554
5555 /* Outputs for Enabled SubSystem: '<S445>/CAN_RX_VI_00' incorporates:
5556 * EnablePort: '<S634>/Enable'
5557 */
5558 if (L4_MABX_B.LogicalOperator_hz) {
5559 /* UnitDelay: '<S634>/Unit Delay' */
5560 for (i = 0; i < 17; i++) {
5561 L4_MABX_B.UnitDelay_lz[i] = L4_MABX_DW.UnitDelay_DSTATE_c[i];
5562 }
5563
5564 /* End of UnitDelay: '<S634>/Unit Delay' */
5565
5566 /* MATLAB Function: '<S634>/serialize_tpdt' */
5567 /* MATLAB Function 'INPUTS_PIC_KW/CAN_PIC_KW/CAN_RX_VI_00/CAN_RX_VI_00/serialize_tpdt': '<S638>:1' */
5568 /* '<S638>:1:9' */
5569 if (L4_MABX_B.DataTypeConversion_j[0] > 1) {
5570 /* '<S638>:1:6' */
5571 /* '<S638>:1:7' */
5572 for (i = 0; i < 17; i++) {
5573 L4_MABX_B.Data[i] = L4_MABX_B.UnitDelay_lz[i];
5574 }
5575 } else {
5576 /* '<S638>:1:9' */
5577 for (i = 0; i < 17; i++) {
5578 L4_MABX_B.Data[i] = MAX_uint8_T;
5579 }
5580 }
5581
5582 /* '<S638>:1:11' */
5583 i = (int32_T)(7U * L4_MABX_B.DataTypeConversion_j[0]);
5584 if ((uint32_T)i > 255U) {
5585 i = 255;
5586 }
5587
5588 tmp = i - 6U;
5589 if (tmp > (uint32_T)i) {
5590 tmp = 0U;
5591 }
5592
5593 i = (int32_T)tmp;
5594 starting_index = (uint8_T)i;
5595
5596 /* '<S638>:1:12' */
5597 L4_MABX_B.Data[starting_index - 1] = L4_MABX_B.DataTypeConversion_j[1];
5598 L4_MABX_B.Data[starting_index] = L4_MABX_B.DataTypeConversion_j[2];
5599 L4_MABX_B.Data[starting_index + 1] = L4_MABX_B.DataTypeConversion_j[3];
5600 L4_MABX_B.Data[starting_index + 2] = L4_MABX_B.DataTypeConversion_j[4];
5601 L4_MABX_B.Data[starting_index + 3] = L4_MABX_B.DataTypeConversion_j[5];
5602 L4_MABX_B.Data[starting_index + 4] = L4_MABX_B.DataTypeConversion_j[6];
5603 L4_MABX_B.Data[starting_index + 5] = L4_MABX_B.DataTypeConversion_j[7];
5604
5605 /* '<S638>:1:13' */
5606 L4_MABX_B.RX_status_di = (L4_MABX_B.DataTypeConversion_j[0] ==
5607 L4_MABX_B.SPN2568_TotalNumberOfPackets);
5608
5609 /* End of MATLAB Function: '<S634>/serialize_tpdt' */
5610
5611 /* Outputs for Enabled SubSystem: '<S634>/Decode' incorporates:
5612 * EnablePort: '<S637>/Enable'
5613 */
5614 if (L4_MABX_B.RX_status_di) {
5615 /* Inport: '<S637>/Inport' */
5616 for (i = 0; i < 17; i++) {
5617 L4_MABX_B.Inport[i] = L4_MABX_B.Data[i];
5618 }
5619
5620 /* End of Inport: '<S637>/Inport' */
5621
5622 /* Inport: '<S637>/timeStamp' */
5623 L4_MABX_B.timeStamp = GLB_Absolute_Timestamp;
5624
5625 /* UnitDelay: '<S637>/Unit_Delay' */
5626 L4_MABX_B.Unit_Delay_b = L4_MABX_DW.Unit_Delay_DSTATE_p;
5627
5628 /* Sum: '<S637>/Subtract' */
5629 L4_MABX_B.Subtract_oj = (real32_T)(L4_MABX_B.timeStamp -
5630 L4_MABX_B.Unit_Delay_b);
5631 }
5632
5633 /* End of Outputs for SubSystem: '<S634>/Decode' */
5634 }
5635
5636 /* End of Outputs for SubSystem: '<S445>/CAN_RX_VI_00' */
5637
5638 /* DataTypeConversion: '<S635>/Data Type Conversion' */
5639 L4_MABX_B.DataTypeConversion_kp = L4_MABX_B.Inport[0];
5640
5641 /* DataTypeConversion: '<S635>/Data Type Conversion1' */
5642 L4_MABX_B.DataTypeConversion1_oe = L4_MABX_B.Inport[1];
5643
5644 /* DataTypeConversion: '<S635>/Data Type Conversion2' */
5645 L4_MABX_B.DataTypeConversion2_fb3 = L4_MABX_B.Inport[2];
5646
5647 /* DataTypeConversion: '<S635>/Data Type Conversion3' */
5648 L4_MABX_B.DataTypeConversion3_ee = L4_MABX_B.Inport[3];
5649
5650 /* DataTypeConversion: '<S635>/Data Type Conversion4' */
5651 L4_MABX_B.DataTypeConversion4_i5 = L4_MABX_B.Inport[4];
5652
5653 /* DataTypeConversion: '<S635>/Data Type Conversion5' */
5654 L4_MABX_B.DataTypeConversion5_l = L4_MABX_B.Inport[5];
5655
5656 /* DataTypeConversion: '<S635>/Data Type Conversion6' */
5657 L4_MABX_B.DataTypeConversion6_h3 = L4_MABX_B.Inport[6];
5658
5659 /* DataTypeConversion: '<S635>/Data Type Conversion7' */
5660 L4_MABX_B.DataTypeConversion7_ki = L4_MABX_B.Inport[7];
5661
5662 /* DataTypeConversion: '<S635>/Data Type Conversion8' */
5663 L4_MABX_B.DataTypeConversion8_d = L4_MABX_B.Inport[8];
5664
5665 /* DataTypeConversion: '<S635>/Data Type Conversion9' */
5666 L4_MABX_B.DataTypeConversion9_eo = L4_MABX_B.Inport[9];
5667
5668 /* DataTypeConversion: '<S635>/Data Type Conversion10' */
5669 L4_MABX_B.DataTypeConversion10_n2 = L4_MABX_B.Inport[10];
5670
5671 /* DataTypeConversion: '<S635>/Data Type Conversion11' */
5672 L4_MABX_B.DataTypeConversion11_o = L4_MABX_B.Inport[11];
5673
5674 /* DataTypeConversion: '<S635>/Data Type Conversion12' */
5675 L4_MABX_B.DataTypeConversion12 = L4_MABX_B.Inport[12];
5676
5677 /* DataTypeConversion: '<S635>/Data Type Conversion14' */
5678 L4_MABX_B.DataTypeConversion14_i = L4_MABX_B.Inport[13];
5679
5680 /* DataTypeConversion: '<S635>/Data Type Conversion13' */
5681 L4_MABX_B.DataTypeConversion13_k = L4_MABX_B.Inport[14];
5682
5683 /* DataTypeConversion: '<S635>/Data Type Conversion15' */
5684 L4_MABX_B.DataTypeConversion15_b = L4_MABX_B.Inport[15];
5685
5686 /* DataTypeConversion: '<S635>/Data Type Conversion16' */
5687 L4_MABX_B.DataTypeConversion16_k = L4_MABX_B.Inport[16];
5688
5689 /* RelationalOperator: '<S635>/Relational Operator1' incorporates:
5690 * Constant: '<S635>/TRUCK_1571_VIN_CPV'
5691 */
5692 L4_MABX_B.RelationalOperator1_m[0] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[0] !=
5693 L4_MABX_B.DataTypeConversion_kp);
5694 L4_MABX_B.RelationalOperator1_m[1] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[1] !=
5695 L4_MABX_B.DataTypeConversion1_oe);
5696 L4_MABX_B.RelationalOperator1_m[2] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[2] !=
5697 L4_MABX_B.DataTypeConversion2_fb3);
5698 L4_MABX_B.RelationalOperator1_m[3] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[3] !=
5699 L4_MABX_B.DataTypeConversion3_ee);
5700 L4_MABX_B.RelationalOperator1_m[4] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[4] !=
5701 L4_MABX_B.DataTypeConversion4_i5);
5702 L4_MABX_B.RelationalOperator1_m[5] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[5] !=
5703 L4_MABX_B.DataTypeConversion5_l);
5704 L4_MABX_B.RelationalOperator1_m[6] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[6] !=
5705 L4_MABX_B.DataTypeConversion6_h3);
5706 L4_MABX_B.RelationalOperator1_m[7] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[7] !=
5707 L4_MABX_B.DataTypeConversion7_ki);
5708 L4_MABX_B.RelationalOperator1_m[8] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[8] !=
5709 L4_MABX_B.DataTypeConversion8_d);
5710 L4_MABX_B.RelationalOperator1_m[9] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[9] !=
5711 L4_MABX_B.DataTypeConversion9_eo);
5712 L4_MABX_B.RelationalOperator1_m[10] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[10]
5713 != L4_MABX_B.DataTypeConversion10_n2);
5714 L4_MABX_B.RelationalOperator1_m[11] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[11]
5715 != L4_MABX_B.DataTypeConversion11_o);
5716 L4_MABX_B.RelationalOperator1_m[12] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[12]
5717 != L4_MABX_B.DataTypeConversion12);
5718 L4_MABX_B.RelationalOperator1_m[13] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[13]
5719 != L4_MABX_B.DataTypeConversion14_i);
5720 L4_MABX_B.RelationalOperator1_m[14] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[14]
5721 != L4_MABX_B.DataTypeConversion13_k);
5722 L4_MABX_B.RelationalOperator1_m[15] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[15]
5723 != L4_MABX_B.DataTypeConversion15_b);
5724 L4_MABX_B.RelationalOperator1_m[16] = (L4_MABX_P.TRUCK_1571_VIN_CPV_Value[16]
5725 != L4_MABX_B.DataTypeConversion16_k);
5726
5727 /* Sum: '<S635>/Add' */
5728 tmp = 0U;
5729 for (i = 0; i < 17; i++) {
5730 tmp += L4_MABX_B.RelationalOperator1_m[i];
5731 }
5732
5733 L4_MABX_B.Add_ew = (uint8_T)tmp;
5734
5735 /* End of Sum: '<S635>/Add' */
5736
5737 /* RelationalOperator: '<S639>/Compare' incorporates:
5738 * Constant: '<S639>/Constant'
5739 */
5740 L4_MABX_B.Compare_c = (L4_MABX_B.Add_ew == L4_MABX_P.Constant_Value_im);
5741
5742 /* Logic: '<S635>/Logical Operator' */
5743 L4_MABX_B.LogicalOperator_o = (L4_MABX_B.Unit_Delay3 && L4_MABX_B.Compare_c);
5744
5745 /* UnitDelay: '<S635>/Unit_Delay' */
5746 L4_MABX_B.Unit_Delay_kp = L4_MABX_DW.Unit_Delay_DSTATE_mg;
5747
5748 /* Logic: '<S641>/Logical Operator3' */
5749 L4_MABX_B.LogicalOperator3_l = !L4_MABX_B.Unit_Delay_kp;
5750
5751 /* UnitDelay: '<S641>/Unit_Delay' */
5752 L4_MABX_B.Unit_Delay_h = L4_MABX_DW.Unit_Delay_DSTATE_a;
5753
5754 /* Logic: '<S641>/Logical Operator' */
5755 L4_MABX_B.LogicalOperator_p = (L4_MABX_B.LogicalOperator3_l &&
5756 L4_MABX_B.Unit_Delay_h);
5757
5758 /* Logic: '<S641>/Logical Operator1' */
5759 L4_MABX_B.LogicalOperator1_k = (L4_MABX_B.LogicalOperator_o ||
5760 L4_MABX_B.LogicalOperator_p);
5761
5762 /* Outputs for Enabled SubSystem: '<S616>/SSI2_031' incorporates:
5763 * EnablePort: '<S617>/Enable'
5764 */
5765 /* Constant: '<S436>/Constant' */
5766 if (L4_MABX_P.Constant_Value_j > 0.0) {
5767 /* S-Function (rti_commonblock): '<S617>/S-Function1' */
5768 /* This comment workarounds a code generation problem */
5769
5770 /* dSPACE RTICAN RX Message Block: "SSI2_03" Id:217065731 */
5771 {
5772 UInt32 *CAN_Msg;
5773 static dsfloat time_old = 0.0;
5774
5775 /* Read status and timestamp info (previous message) */
5776 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].timestamp !=
5777 time_old) {
5778 /* ... save timestamp info for the calculation of the RX status
5779 during the consecutive sample hit*/
5780 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].
5781 timestamp;
5782
5783 /* ... set the processed flag to one */
5784 L4_MABX_B.SFunction1_o8_a = 1.0;
5785 L4_MABX_B.SFunction1_o9_aw = (real_T)
5786 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].timestamp;
5787 L4_MABX_B.SFunction1_o10_a = (real_T)
5788 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].deltatime;
5789 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02903].data;
5790
5791 /* Decode CAN message */
5792 {
5793 {
5794 rtican_Signal_t CAN_Sgn;
5795
5796 /* ...... "PitchAngleExRange" (0|24, standard signal, unsigned int, little endian) */
5797 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5798 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
5799 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
5800 CAN_Sgn.UnsignedSgn &= 0x00FFFFFF;
5801 L4_MABX_B.SFunction1_o1_bv = -250 + ( 3.0517578125E-5 * ( ((real_T)
5802 CAN_Sgn.UnsignedSgn) ) );
5803
5804 /* ...... "RollAngleExRange" (24|24, standard signal, unsigned int, little endian) */
5805 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5806 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
5807 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[5];
5808 CAN_Sgn.UnsignedSgn &= 0x00FFFFFF;
5809 L4_MABX_B.SFunction1_o2_f = -250 + ( 3.0517578125E-5 * ( ((real_T)
5810 CAN_Sgn.UnsignedSgn) ) );
5811
5812 /* ...... "PitchAngleExRangeCompensation" (48|2, standard signal, unsigned int, little endian) */
5813 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5814 CAN_Sgn.UnsignedSgn &= 0x00000003;
5815 L4_MABX_B.SFunction1_o3_lm = ((real_T) CAN_Sgn.UnsignedSgn);
5816
5817 /* ...... "PitchAngleExRangeFigureOfMerit" (50|2, standard signal, unsigned int, little endian) */
5818 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5819 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
5820 CAN_Sgn.UnsignedSgn &= 0x00000003;
5821 L4_MABX_B.SFunction1_o4_j = ((real_T) CAN_Sgn.UnsignedSgn);
5822
5823 /* ...... "RollAngleExRangeCompensation" (52|2, standard signal, unsigned int, little endian) */
5824 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5825 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5826 CAN_Sgn.UnsignedSgn &= 0x00000003;
5827 L4_MABX_B.SFunction1_o5_o = ((real_T) CAN_Sgn.UnsignedSgn);
5828
5829 /* ...... "RollAngleExRangeFigureOfMerit" (54|2, standard signal, unsigned int, little endian) */
5830 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5831 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
5832 CAN_Sgn.UnsignedSgn &= 0x00000003;
5833 L4_MABX_B.SFunction1_o6_id = ((real_T) CAN_Sgn.UnsignedSgn);
5834
5835 /* ...... "RllAndPtchExRngMsurementLatency" (56|8, standard signal, unsigned int, little endian) */
5836 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
5837 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5838 L4_MABX_B.SFunction1_o7_gn = 0.5 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5839 }
5840 }
5841 } else {
5842 /* set RX status to 0 because no new message has arrived */
5843 L4_MABX_B.SFunction1_o8_a = 0.0;
5844 }
5845 }
5846 }
5847
5848 /* End of Constant: '<S436>/Constant' */
5849 /* End of Outputs for SubSystem: '<S616>/SSI2_031' */
5850
5851 /* DataTypeConversion: '<S616>/Data Type Conversion1' */
5852 L4_MABX_B.PitchAngleExRange = L4_MABX_B.SFunction1_o1_bv;
5853
5854 /* Outputs for Enabled SubSystem: '<S607>/PX2_LanePosEst' incorporates:
5855 * EnablePort: '<S610>/Enable'
5856 */
5857 /* Constant: '<S433>/Constant' */
5858 if (L4_MABX_P.Constant_Value_jo) {
5859 /* S-Function (rti_commonblock): '<S610>/S-Function1' */
5860 /* This comment workarounds a code generation problem */
5861
5862 /* dSPACE RTICAN RX Message Block: "PX2_LanePosEst" Id:769 */
5863 {
5864 UInt32 *CAN_Msg;
5865 static dsfloat time_old = 0.0;
5866
5867 /* Read status and timestamp info (previous message) */
5868 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].timestamp !=
5869 time_old) {
5870 /* ... save timestamp info for the calculation of the RX status
5871 during the consecutive sample hit*/
5872 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].timestamp;
5873
5874 /* ... set the processed flag to one */
5875 L4_MABX_B.SFunction1_o5_c = 1.0;
5876 L4_MABX_B.SFunction1_o6_im = (real_T)
5877 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].timestamp;
5878 L4_MABX_B.SFunction1_o7_l = (real_T)
5879 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].deltatime;
5880 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x301].data;
5881
5882 /* Decode CAN message */
5883 {
5884 {
5885 rtican_Signal_t CAN_Sgn;
5886
5887 /* ...... "PX2_LanePosEstAngle" (0|16, standard signal, signed int, little endian) */
5888 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5889 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
5890 CAN_Sgn.SignedSgn &= 0x0000FFFF;
5891 if (CAN_Sgn.SignedSgn >> 15) {
5892 CAN_Sgn.SignedSgn |= 0xFFFF0000;
5893 }
5894
5895 L4_MABX_B.SFunction1_o1_ai = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
5896
5897 /* ...... "PX2_LanePosEstNumPoints" (16|8, standard signal, unsigned int, little endian) */
5898 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5899 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5900 L4_MABX_B.SFunction1_o2_dt = ((real_T) CAN_Sgn.UnsignedSgn);
5901
5902 /* ...... "PX2_LanePosEstPosition" (24|16, standard signal, signed int, little endian) */
5903 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5904 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
5905 CAN_Sgn.SignedSgn &= 0x0000FFFF;
5906 if (CAN_Sgn.SignedSgn >> 15) {
5907 CAN_Sgn.SignedSgn |= 0xFFFF0000;
5908 }
5909
5910 L4_MABX_B.SFunction1_o3_kw = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn) );
5911
5912 /* ...... "PX2_LanePosEstNumLanes" (40|4, standard signal, unsigned int, little endian) */
5913 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5914 CAN_Sgn.UnsignedSgn &= 0x0000000F;
5915 L4_MABX_B.SFunction1_o4_cj = ((real_T) CAN_Sgn.UnsignedSgn);
5916 }
5917 }
5918 } else {
5919 /* set RX status to 0 because no new message has arrived */
5920 L4_MABX_B.SFunction1_o5_c = 0.0;
5921 }
5922 }
5923 }
5924
5925 /* End of Outputs for SubSystem: '<S607>/PX2_LanePosEst' */
5926
5927 /* Outputs for Enabled SubSystem: '<S614>/Bendix_Prop2C2_Status_30' incorporates:
5928 * EnablePort: '<S615>/Enable'
5929 */
5930 /* Constant: '<S435>/Constant' */
5931 if (L4_MABX_P.Constant_Value_gd > 0.0) {
5932 /* S-Function (rti_commonblock): '<S615>/S-Function1' */
5933 /* This comment workarounds a code generation problem */
5934
5935 /* dSPACE RTICAN RX Message Block: "Prop2C2_Status_30" Id:419382064 */
5936 {
5937 UInt32 *CAN_Msg;
5938 static dsfloat time_old = 0.0;
5939
5940 /* Read status and timestamp info (previous message) */
5941 if (can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].timestamp !=
5942 time_old) {
5943 /* ... save timestamp info for the calculation of the RX status
5944 during the consecutive sample hit*/
5945 time_old = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].
5946 timestamp;
5947
5948 /* ... set the processed flag to one */
5949 L4_MABX_B.SFunction1_o11_a = 1.0;
5950 L4_MABX_B.SFunction1_o12_i = (real_T)
5951 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].timestamp;
5952 L4_MABX_B.SFunction1_o13_l = (real_T)
5953 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].deltatime;
5954 CAN_Msg = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF4330].data;
5955
5956 /* Decode CAN message */
5957 {
5958 {
5959 rtican_Signal_t CAN_Sgn;
5960
5961 /* ...... "PressureP4" (0|8, standard signal, unsigned int, little endian) */
5962 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
5963 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5964 L4_MABX_B.SFunction1_o1_ad = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5965
5966 /* ...... "PressureP1" (8|8, standard signal, unsigned int, little endian) */
5967 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
5968 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5969 L4_MABX_B.SFunction1_o2_iy = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5970
5971 /* ...... "PressureP21" (16|8, standard signal, unsigned int, little endian) */
5972 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
5973 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5974 L4_MABX_B.SFunction1_o3_ax1 = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5975
5976 /* ...... "PressureP22" (24|8, standard signal, unsigned int, little endian) */
5977 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
5978 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5979 L4_MABX_B.SFunction1_o4_aj = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5980
5981 /* ...... "PressureP42" (32|8, standard signal, unsigned int, little endian) */
5982 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
5983 CAN_Sgn.UnsignedSgn &= 0x000000FF;
5984 L4_MABX_B.SFunction1_o5_fo = 80 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
5985
5986 /* ...... "XPR1ControlStatus" (40|4, standard signal, unsigned int, little endian) */
5987 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5988 CAN_Sgn.UnsignedSgn &= 0x0000000F;
5989 L4_MABX_B.SFunction1_o6_d = ((real_T) CAN_Sgn.UnsignedSgn);
5990
5991 /* ...... "XPR2ControlStatus" (44|4, standard signal, unsigned int, little endian) */
5992 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
5993 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
5994 CAN_Sgn.UnsignedSgn &= 0x0000000F;
5995 L4_MABX_B.SFunction1_o7_io = ((real_T) CAN_Sgn.UnsignedSgn);
5996
5997 /* ...... "XPR3ControlStatus" (48|4, standard signal, unsigned int, little endian) */
5998 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
5999 CAN_Sgn.UnsignedSgn &= 0x0000000F;
6000 L4_MABX_B.SFunction1_o8_g = ((real_T) CAN_Sgn.UnsignedSgn);
6001
6002 /* ...... "XPRErrorState" (56|2, standard signal, unsigned int, little endian) */
6003 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
6004 CAN_Sgn.UnsignedSgn &= 0x00000003;
6005 L4_MABX_B.SFunction1_o9_m = ((real_T) CAN_Sgn.UnsignedSgn);
6006
6007 /* ...... "XPRControlMode" (58|4, standard signal, unsigned int, little endian) */
6008 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
6009 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
6010 CAN_Sgn.UnsignedSgn &= 0x0000000F;
6011 L4_MABX_B.SFunction1_o10_e = ((real_T) CAN_Sgn.UnsignedSgn);
6012 }
6013 }
6014 } else {
6015 /* set RX status to 0 because no new message has arrived */
6016 L4_MABX_B.SFunction1_o11_a = 0.0;
6017 }
6018 }
6019 }
6020
6021 /* End of Constant: '<S435>/Constant' */
6022 /* End of Outputs for SubSystem: '<S614>/Bendix_Prop2C2_Status_30' */
6023
6024 /* DataTypeConversion: '<S614>/Data Type Conversion15' */
6025 PositionFinalLimited = L4_MABX_B.SFunction1_o10_e;
6026 if (PositionFinalLimited < 256.0) {
6027 if (PositionFinalLimited >= 0.0) {
6028 starting_index = (uint8_T)PositionFinalLimited;
6029 } else {
6030 starting_index = 0U;
6031 }
6032 } else {
6033 starting_index = MAX_uint8_T;
6034 }
6035
6036 L4_MABX_B.DataTypeConversion15_o = starting_index;
6037
6038 /* End of DataTypeConversion: '<S614>/Data Type Conversion15' */
6039
6040 /* DataTypeConversion: '<S614>/Data Type Conversion5' */
6041 L4_MABX_B.XPRControlMode = (ENUM_XPR_CONTROL_MODE_T)
6042 safe_cast_to_ENUM_XPR_CONTROL_M(L4_MABX_B.DataTypeConversion15_o);
6043
6044 /* DataTypeConversion: '<S614>/Data Type Conversion4' */
6045 PositionFinalLimited = L4_MABX_B.SFunction1_o9_m;
6046 if (PositionFinalLimited < 256.0) {
6047 if (PositionFinalLimited >= 0.0) {
6048 starting_index = (uint8_T)PositionFinalLimited;
6049 } else {
6050 starting_index = 0U;
6051 }
6052 } else {
6053 starting_index = MAX_uint8_T;
6054 }
6055
6056 L4_MABX_B.DataTypeConversion4_p = starting_index;
6057
6058 /* End of DataTypeConversion: '<S614>/Data Type Conversion4' */
6059
6060 /* DataTypeConversion: '<S614>/Data Type Conversion14' */
6061 L4_MABX_B.XPRErrorState = (ENUM_XPR_ERROR_STATE_T)
6062 safe_cast_to_ENUM_XPR_ERROR_STA(L4_MABX_B.DataTypeConversion4_p);
6063
6064 /* DataTypeConversion: '<S614>/Data Type Conversion7' */
6065 L4_MABX_B.PressureP1 = L4_MABX_B.SFunction1_o2_iy;
6066
6067 /* DataTypeConversion: '<S614>/Data Type Conversion6' */
6068 L4_MABX_B.PressureP4 = L4_MABX_B.SFunction1_o1_ad;
6069
6070 /* DataTypeConversion: '<S614>/Data Type Conversion11' */
6071 L4_MABX_B.PressureP21 = L4_MABX_B.SFunction1_o3_ax1;
6072
6073 /* DataTypeConversion: '<S614>/Data Type Conversion12' */
6074 L4_MABX_B.PressureP22 = L4_MABX_B.SFunction1_o4_aj;
6075
6076 /* DataTypeConversion: '<S614>/Data Type Conversion13' */
6077 L4_MABX_B.PressureP42 = L4_MABX_B.SFunction1_o5_fo;
6078
6079 /* RelationalOperator: '<S646>/Operator' incorporates:
6080 * Constant: '<S452>/Constant3'
6081 * Constant: '<S644>/Constant1'
6082 */
6083 L4_MABX_B.Operator_k1 = (PROPB_REAX_CHANNEL_APV ==
6084 L4_MABX_P.Constant1_Value_de);
6085
6086 /* Outputs for Enabled SubSystem: '<S564>/PropB_REAX_2_13' incorporates:
6087 * EnablePort: '<S566>/Enable'
6088 */
6089 if (L4_MABX_B.Operator_k1) {
6090 /* S-Function (rti_commonblock): '<S566>/S-Function1' */
6091 /* This comment workarounds a code generation problem */
6092
6093 /* dSPACE RTICAN RX Message Block: "PropB_REAX_2_13" Id:419426323 */
6094 {
6095 UInt32 *CAN_Msg;
6096 static dsfloat time_old = 0.0;
6097
6098 /* Read status and timestamp info (previous message) */
6099 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].timestamp !=
6100 time_old) {
6101 /* ... save timestamp info for the calculation of the RX status
6102 during the consecutive sample hit*/
6103 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].
6104 timestamp;
6105
6106 /* ... set the processed flag to one */
6107 L4_MABX_B.SFunction1_o3_k5 = 1.0;
6108 L4_MABX_B.SFunction1_o4_g4 = (real_T)
6109 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].timestamp;
6110 L4_MABX_B.SFunction1_o5_ot = (real_T)
6111 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].deltatime;
6112 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF013].data;
6113
6114 /* Decode CAN message */
6115 {
6116 {
6117 rtican_Signal_t CAN_Sgn;
6118
6119 /* ...... "PropB_REAX_2_ActualHandwheelPos" (0|32, standard signal, signed int, little endian) */
6120 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
6121 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
6122 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
6123 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
6124 L4_MABX_B.SFunction1_o1_fs = 0.0439453125 * ( ((real_T)
6125 CAN_Sgn.SignedSgn) );
6126
6127 /* ...... "PropB_REAX_2_EchoedStrWhlPos" (32|32, standard signal, signed int, little endian) */
6128 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
6129 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
6130 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
6131 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
6132 L4_MABX_B.SFunction1_o2_ji = 0.0439453125 * ( ((real_T)
6133 CAN_Sgn.SignedSgn) );
6134 }
6135 }
6136 } else {
6137 /* set RX status to 0 because no new message has arrived */
6138 L4_MABX_B.SFunction1_o3_k5 = 0.0;
6139 }
6140 }
6141 }
6142
6143 /* End of Outputs for SubSystem: '<S564>/PropB_REAX_2_13' */
6144
6145 /* RelationalOperator: '<S645>/Operator' incorporates:
6146 * Constant: '<S452>/Constant3'
6147 * Constant: '<S644>/Constant'
6148 */
6149 L4_MABX_B.Operator_jc = (PROPB_REAX_CHANNEL_APV ==
6150 L4_MABX_P.Constant_Value_ke5);
6151
6152 /* RelationalOperator: '<S647>/Operator' incorporates:
6153 * Constant: '<S452>/Constant3'
6154 * Constant: '<S644>/Constant2'
6155 */
6156 L4_MABX_B.Operator_l4 = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant2_Value_c);
6157
6158 /* RelationalOperator: '<S648>/Operator' incorporates:
6159 * Constant: '<S452>/Constant3'
6160 * Constant: '<S644>/Constant3'
6161 */
6162 L4_MABX_B.Operator_bt = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant3_Value_f);
6163
6164 /* RelationalOperator: '<S649>/Operator' incorporates:
6165 * Constant: '<S452>/Constant3'
6166 * Constant: '<S644>/Constant4'
6167 */
6168 L4_MABX_B.Operator_fve = (PROPB_REAX_CHANNEL_APV ==
6169 L4_MABX_P.Constant4_Value_om);
6170
6171 /* RelationalOperator: '<S650>/Operator' incorporates:
6172 * Constant: '<S452>/Constant3'
6173 * Constant: '<S644>/Constant5'
6174 */
6175 L4_MABX_B.Operator_lue = (PROPB_REAX_CHANNEL_APV ==
6176 L4_MABX_P.Constant5_Value_i);
6177
6178 /* Logic: '<S452>/OR' */
6179 L4_MABX_B.EnablePropB_ReAX_CAN6 = (L4_MABX_B.Operator_jc ||
6180 L4_MABX_B.Operator_l4 || L4_MABX_B.Operator_bt || L4_MABX_B.Operator_fve ||
6181 L4_MABX_B.Operator_lue);
6182
6183 /* Outputs for Enabled SubSystem: '<S565>/PropB_REAX_2_13' incorporates:
6184 * EnablePort: '<S567>/Enable'
6185 */
6186 if (L4_MABX_B.EnablePropB_ReAX_CAN6) {
6187 /* S-Function (rti_commonblock): '<S567>/S-Function1' */
6188 /* This comment workarounds a code generation problem */
6189
6190 /* dSPACE RTICAN RX Message Block: "PropB_REAX_2_13" Id:419426323 */
6191 {
6192 UInt32 *CAN_Msg;
6193 static dsfloat time_old = 0.0;
6194
6195 /* Read status and timestamp info (previous message) */
6196 if (can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF013].timestamp !=
6197 time_old) {
6198 /* ... save timestamp info for the calculation of the RX status
6199 during the consecutive sample hit*/
6200 time_old = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF013].
6201 timestamp;
6202
6203 /* ... set the processed flag to one */
6204 L4_MABX_B.SFunction1_o3_m2 = 1.0;
6205 L4_MABX_B.SFunction1_o4_dwj = (real_T)
6206 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF013].timestamp;
6207 L4_MABX_B.SFunction1_o5_i0 = (real_T)
6208 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF013].deltatime;
6209 CAN_Msg = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF013].data;
6210
6211 /* Decode CAN message */
6212 {
6213 {
6214 rtican_Signal_t CAN_Sgn;
6215
6216 /* ...... "PropB_REAX_2_ActualHandwheelPos" (0|32, standard signal, signed int, little endian) */
6217 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
6218 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
6219 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
6220 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
6221 L4_MABX_B.SFunction1_o1_i5 = 0.0439453125 * ( ((real_T)
6222 CAN_Sgn.SignedSgn) );
6223
6224 /* ...... "PropB_REAX_2_EchoedStrWhlPos" (32|32, standard signal, signed int, little endian) */
6225 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
6226 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
6227 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
6228 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
6229 L4_MABX_B.SFunction1_o2_ll = 0.0439453125 * ( ((real_T)
6230 CAN_Sgn.SignedSgn) );
6231 }
6232 }
6233 } else {
6234 /* set RX status to 0 because no new message has arrived */
6235 L4_MABX_B.SFunction1_o3_m2 = 0.0;
6236 }
6237 }
6238 }
6239
6240 /* End of Outputs for SubSystem: '<S565>/PropB_REAX_2_13' */
6241
6242 /* Switch: '<S429>/Switch' */
6243 if (L4_MABX_B.Operator_k1) {
6244 ReAX_ActualHandwheelPos = L4_MABX_B.SFunction1_o1_fs;
6245 } else {
6246 ReAX_ActualHandwheelPos = L4_MABX_B.SFunction1_o1_i5;
6247 }
6248
6249 /* S-Function (dsa_tcpip_setup_sfcn): '<S386>/dsa_tcpip_setup' */
6250
6251 /* Level2 S-Function Block: '<S386>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
6252 {
6253 SimStruct *rts = L4_MABX_M->childSfunctions[3];
6254 ssSetOutputPortSignal(rts, 0, &EthernetLinkStatus);
6255 sfcnOutputs(rts,0);
6256 }
6257
6258 /* Constant: '<S3>/Enable' */
6259 L4_MABX_B.Enable = L4_MABX_P.Enable_Value;
6260
6261 /* DiscretePulseGenerator: '<S385>/Heartbeat' */
6262 L4_MABX_B.Heartbeat = (L4_MABX_DW.clockTickCounter < L4_MABX_P.Heartbeat_Duty)
6263 && (L4_MABX_DW.clockTickCounter >= 0) ? L4_MABX_P.Heartbeat_Amp : 0.0;
6264 if (L4_MABX_DW.clockTickCounter >= L4_MABX_P.Heartbeat_Period - 1.0) {
6265 L4_MABX_DW.clockTickCounter = 0;
6266 } else {
6267 L4_MABX_DW.clockTickCounter++;
6268 }
6269
6270 /* End of DiscretePulseGenerator: '<S385>/Heartbeat' */
6271
6272 /* DataTypeConversion: '<S385>/Cast To Boolean' */
6273 L4_MABX_B.Heartbeat_l = (L4_MABX_B.Heartbeat != 0.0);
6274
6275 /* UnitDelay: '<S3>/Unit_Delay' */
6276 L4_MABX_B.EStop_p = L4_MABX_DW.Unit_Delay_79_DSTATE;
6277 L4_MABX_B.EnableSW = L4_MABX_DW.Unit_Delay_80_DSTATE;
6278 L4_MABX_B.EngagePB_j = L4_MABX_DW.Unit_Delay_81_DSTATE;
6279 L4_MABX_B.AutonomousEnabled_i = L4_MABX_DW.Unit_Delay_45_DSTATE;
6280 L4_MABX_B.MABX_Mode_j = L4_MABX_DW.Unit_Delay_47_DSTATE;
6281
6282 /* BusCreator: '<S385>/Bus Creator' */
6283 L4_MABX_B.BusCreator.Heartbeat = L4_MABX_B.Heartbeat_l;
6284 L4_MABX_B.BusCreator.EStop = L4_MABX_B.EStop_p;
6285 L4_MABX_B.BusCreator.EnableSW = L4_MABX_B.EnableSW;
6286 L4_MABX_B.BusCreator.EngagePB = L4_MABX_B.EngagePB_j;
6287 L4_MABX_B.BusCreator.AutonomousEnabled = L4_MABX_B.AutonomousEnabled_i;
6288 L4_MABX_B.BusCreator.MABX_Mode = L4_MABX_B.MABX_Mode_j;
6289
6290 /* S-Function (dsa_gen_tx_RTMapsEncode_sfun): '<S393>/Encoder' */
6291 Update_Tx_RTMapsEncode((RTMapsTX*)&L4_MABX_B.BusCreator,
6292 &L4_MABX_B.Encoder_o1[0], &L4_MABX_B.Encoder_o2);
6293
6294 /* S-Function (dsa_tcpip_udp_sfcn): '<S387>/TCPIP_Com' */
6295
6296 /* Level2 S-Function Block: '<S387>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
6297 {
6298 SimStruct *rts = L4_MABX_M->childSfunctions[4];
6299 sfcnOutputs(rts,0);
6300 }
6301
6302 /* DataTypeConversion: '<S384>/Data Type Conversion' */
6303 L4_MABX_B.DataTypeConversion_f = L4_MABX_B.TCPIP_Com_o2;
6304
6305 /* S-Function (dsa_gen_rx_RTMapsDecode_sfun): '<S390>/Decoder' */
6306 Update_Rx_RTMapsDecode((uint8_T*)&L4_MABX_B.TCPIP_Com_o3[0],
6307 L4_MABX_B.DataTypeConversion_f, L4_MABX_B.TCPIP_Com_o1[2],
6308 &L4_MABX_B.Decoder_o1, &L4_MABX_B.Decoder_o2, &L4_MABX_B.Decoder_o3);
6309
6310 /* RelationalOperator: '<S392>/Compare' incorporates:
6311 * Constant: '<S392>/Constant'
6312 */
6313 L4_MABX_B.Compare_ax = ((int32_T)L4_MABX_B.Decoder_o1.Heartbeat > (int32_T)
6314 L4_MABX_P.Constant_Value_ilu);
6315
6316 /* UnitDelay: '<S391>/Delay Input1' */
6317 L4_MABX_B.Uk1_i = L4_MABX_DW.DelayInput1_DSTATE_p;
6318
6319 /* RelationalOperator: '<S391>/FixPt Relational Operator' */
6320 L4_MABX_B.FixPtRelationalOperator = ((int32_T)L4_MABX_B.Compare_ax > (int32_T)
6321 L4_MABX_B.Uk1_i);
6322
6323 /* UnitDelay: '<S389>/Unit Delay' */
6324 L4_MABX_B.UnitDelay = L4_MABX_DW.UnitDelay_DSTATE;
6325
6326 /* Switch: '<S389>/Switch' incorporates:
6327 * Constant: '<S389>/Constant1'
6328 */
6329 if (L4_MABX_B.FixPtRelationalOperator) {
6330 L4_MABX_B.Count = L4_MABX_P.Constant1_Value_e;
6331 } else {
6332 /* Sum: '<S389>/Sum' incorporates:
6333 * Constant: '<S389>/Constant'
6334 */
6335 L4_MABX_B.Sum = L4_MABX_P.Constant_Value_hp + L4_MABX_B.UnitDelay;
6336 L4_MABX_B.Count = L4_MABX_B.Sum;
6337 }
6338
6339 /* End of Switch: '<S389>/Switch' */
6340
6341 /* Switch: '<S389>/Switch1' incorporates:
6342 * Constant: '<S389>/Constant2'
6343 * Constant: '<S389>/Constant3'
6344 */
6345 if (L4_MABX_B.Count > L4_MABX_P.Switch1_Threshold) {
6346 L4_MABX_B.Switch1_om = L4_MABX_P.Constant2_Value_cw;
6347 } else {
6348 L4_MABX_B.Switch1_om = L4_MABX_P.Constant3_Value_am;
6349 }
6350
6351 /* End of Switch: '<S389>/Switch1' */
6352
6353 /* Logic: '<S384>/AND' */
6354 RTMapsOk = ((EthernetLinkStatus != 0.0) && L4_MABX_B.Switch1_om);
6355
6356 /* Switch: '<S384>/Switch9' incorporates:
6357 * Constant: '<S384>/Failure'
6358 * Constant: '<S384>/No Data'
6359 * Switch: '<S384>/Switch'
6360 * Switch: '<S384>/Switch1'
6361 * Switch: '<S384>/Switch3'
6362 * Switch: '<S384>/Switch4'
6363 */
6364 if (RTMapsOk) {
6365 /* Gain: '<S384>/for_logging7' */
6366 L4_MABX_B.SupervisorMode_b = (int8_T)(((uint32_T)L4_MABX_P.for_logging7_Gain
6367 * L4_MABX_B.Decoder_o1.SupervisorMode) >> 7);
6368 SupervisorMode = (uint8_T)L4_MABX_B.SupervisorMode_b;
6369
6370 /* Gain: '<S384>/for_logging' */
6371 L4_MABX_B.for_logging = L4_MABX_P.for_logging_Gain *
6372 L4_MABX_B.Decoder_o1.CurrentAzimuth;
6373 CurrentAzimuth_rad = L4_MABX_B.for_logging;
6374
6375 /* Gain: '<S384>/for_logging1' */
6376 L4_MABX_B.for_logging1 = L4_MABX_P.for_logging1_Gain *
6377 L4_MABX_B.Decoder_o1.TargetAzimuth;
6378 TargetAzimuth_rad = L4_MABX_B.for_logging1;
6379
6380 /* Gain: '<S384>/m//s_to_km//h_2' */
6381 L4_MABX_B.ms_to_kmh_2 = L4_MABX_P.ms_to_kmh_2_Gain *
6382 L4_MABX_B.Decoder_o1.TargetVelocity;
6383 TargetVelocity_kph = L4_MABX_B.ms_to_kmh_2;
6384
6385 /* Gain: '<S384>/for_logging2' */
6386 L4_MABX_B.for_logging2 = L4_MABX_P.for_logging2_Gain *
6387 L4_MABX_B.Decoder_o1.Curvature;
6388 Curvature = L4_MABX_B.for_logging2;
6389 } else {
6390 SupervisorMode = L4_MABX_P.Failure_Value_g;
6391 CurrentAzimuth_rad = L4_MABX_P.NoData_Value;
6392 TargetAzimuth_rad = L4_MABX_P.NoData_Value;
6393 TargetVelocity_kph = L4_MABX_P.NoData_Value;
6394 Curvature = L4_MABX_P.NoData_Value;
6395 }
6396
6397 /* End of Switch: '<S384>/Switch9' */
6398
6399 /* Outputs for Atomic SubSystem: '<S65>/Task_10ms' */
6400 /* RelationalOperator: '<S95>/Operator' incorporates:
6401 * Constant: '<S76>/Supervisor_Autonomous_Mode'
6402 */
6403 L4_MABX_B.Operator_ns5 = (L4_MABX_P.Supervisor_Autonomous_Mode_Valu ==
6404 SupervisorMode);
6405
6406 /* Logic: '<S76>/AND' */
6407 L4_MABX_B.AND_l = (L4_MABX_B.Operator_ns5 && RTMapsOk && EnableSw && EStop);
6408
6409 /* MultiPortSwitch: '<S76>/Autonomous Mode Switch1' incorporates:
6410 * Constant: '<S76>/AUTONOMOUS_MODE_SELECTOR_APV'
6411 * Constant: '<S76>/GhostMode1'
6412 */
6413 if (AUTONOMOUS_MODE_SELECTOR_APV == ENUM_AUTONOMOUS_MODE_T_AUTO) {
6414 AutonomousEnabled = L4_MABX_B.AND_l;
6415 } else {
6416 AutonomousEnabled = (L4_MABX_P.GhostMode1_Value != 0);
6417 }
6418
6419 /* End of MultiPortSwitch: '<S76>/Autonomous Mode Switch1' */
6420
6421 /* Logic: '<S83>/Logical Operator' */
6422 L4_MABX_B.LogicalOperator_d = !AutonomousEnabled;
6423
6424 /* Outputs for Atomic SubSystem: '<S83>/If_Then_Else' */
6425
6426 /* Constant: '<S83>/APTC_PEDAL_POSITION_OVR_APV' incorporates:
6427 * Constant: '<S83>/APTC_DESIRED_PEDAL_POSITION_APV'
6428 */
6429 L4_MABX_If_Then_Else(L4_MABX_P.APTC_PEDAL_POSITION_OVR_APV_Val,
6430 L4_MABX_P.APTC_DESIRED_PEDAL_POSITION_APV,
6431 Pedal_pwm_position, &L4_MABX_B.If_Then_Else_oy);
6432
6433 /* End of Outputs for SubSystem: '<S83>/If_Then_Else' */
6434
6435 /* DataTypeConversion: '<S83>/Data Type Conversion1' */
6436 L4_MABX_B.DataTypeConversion1_h = L4_MABX_B.SFunction1_o5_f1;
6437
6438 /* Lookup_n-D: '<S83>/2-D Lookup Table' */
6439 L4_MABX_B.uDLookupTable = look2_binlcapw(L4_MABX_B.If_Then_Else_oy.Switch,
6440 L4_MABX_B.DataTypeConversion1_h, APTC_TRQ_PED_TRQ_POS_STEP_MPV,
6441 APTC_TRQ_PED_TRQ_ESPD_STEP_MPV, APTC_TRQ_PED_TRQ_DATA_MPV,
6442 L4_MABX_P.uDLookupTable_maxIndex, 8U);
6443
6444 /* DataTypeConversion: '<S77>/Data Type Conversion5' */
6445 L4_MABX_B.DataTypeConversion5_o = L4_MABX_B.SFunction1_o1_in;
6446
6447 /* RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' */
6448 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
6449 L4_MABX_B.distanceSpdTarget_e = L4_MABX_DW.TmpRTBAtSignalConversion1Inport;
6450 }
6451
6452 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
6453 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
6454 */
6455 switch (LONG_SPEED_SRC_SELECTOR_APV) {
6456 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
6457 /* SignalConversion: '<S81>/Signal Conversion1' */
6458 L4_MABX_B.Vehicle_speed_target_g = L4_MABX_B.distanceSpdTarget_e;
6459 L4_MABX_B.Vehicle_speed_target_o = L4_MABX_B.Vehicle_speed_target_g;
6460 break;
6461
6462 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
6463 /* SignalConversion: '<S81>/Signal Conversion4' incorporates:
6464 * Constant: '<S81>/VSPD_TARGET_KPH_APV'
6465 */
6466 L4_MABX_B.Vehicle_speed_target_o5 = VSPD_TARGET_KPH_APV;
6467 L4_MABX_B.Vehicle_speed_target_o = L4_MABX_B.Vehicle_speed_target_o5;
6468 break;
6469
6470 default:
6471 /* SignalConversion: '<S81>/Signal Conversion9' */
6472 L4_MABX_B.Vehicle_speed_target_k = TargetVelocity_kph;
6473 L4_MABX_B.Vehicle_speed_target_o = L4_MABX_B.Vehicle_speed_target_k;
6474 break;
6475 }
6476
6477 /* SignalConversion: '<S81>/Signal Conversion16' */
6478 L4_MABX_B.VSPD_TARGET_KPH_APV_g = L4_MABX_B.Vehicle_speed_target_o;
6479
6480 /* Saturate: '<S81>/Saturation9' incorporates:
6481 * Constant: '<S81>/VSPD_HYST_KPH_APV'
6482 */
6483 DeltaTime = L4_MABX_P.VSPD_HYST_KPH_APV_Value;
6484 Time56 = L4_MABX_P.Saturation9_LowerSat;
6485 PositionFinalLimited = L4_MABX_P.Saturation9_UpperSat;
6486 if (DeltaTime > PositionFinalLimited) {
6487 L4_MABX_B.VSPD_HYST_KPH_APV_f = PositionFinalLimited;
6488 } else if (DeltaTime < Time56) {
6489 L4_MABX_B.VSPD_HYST_KPH_APV_f = Time56;
6490 } else {
6491 L4_MABX_B.VSPD_HYST_KPH_APV_f = DeltaTime;
6492 }
6493
6494 /* End of Saturate: '<S81>/Saturation9' */
6495
6496 /* Sum: '<S103>/Add' */
6497 L4_MABX_B.Add_k = L4_MABX_B.VSPD_TARGET_KPH_APV_g +
6498 L4_MABX_B.VSPD_HYST_KPH_APV_f;
6499
6500 /* RelationalOperator: '<S103>/Relational Operator' */
6501 L4_MABX_B.f_vspd_geq_than_target_plus_hys = (L4_MABX_B.DataTypeConversion5_o >=
6502 L4_MABX_B.Add_k);
6503
6504 /* Saturate: '<S81>/Saturation1' incorporates:
6505 * Constant: '<S81>/VSPD_BRAKE_STOP_THRESH_KPH_APV'
6506 */
6507 DeltaTime = L4_MABX_P.VSPD_BRAKE_STOP_THRESH_KPH_APV_;
6508 Time56 = L4_MABX_P.Saturation1_LowerSat;
6509 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat;
6510 if (DeltaTime > PositionFinalLimited) {
6511 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b = PositionFinalLimited;
6512 } else if (DeltaTime < Time56) {
6513 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b = Time56;
6514 } else {
6515 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b = DeltaTime;
6516 }
6517
6518 /* End of Saturate: '<S81>/Saturation1' */
6519
6520 /* RelationalOperator: '<S103>/Relational Operator1' */
6521 L4_MABX_B.f_target_is_stop_thresh = (L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b
6522 == L4_MABX_B.VSPD_TARGET_KPH_APV_g);
6523
6524 /* RelationalOperator: '<S199>/Compare' incorporates:
6525 * Constant: '<S199>/Constant'
6526 */
6527 L4_MABX_B.Compare_eu = (L4_MABX_B.VSPD_TARGET_KPH_APV_g ==
6528 L4_MABX_P.Constant_Value_k);
6529
6530 /* RelationalOperator: '<S103>/Relational Operator2' */
6531 L4_MABX_B.RelationalOperator2_p = (L4_MABX_B.VSPD_HYST_KPH_APV_f >=
6532 L4_MABX_B.VSPD_TARGET_KPH_APV_g);
6533
6534 /* RelationalOperator: '<S103>/Relational Operator3' */
6535 L4_MABX_B.RelationalOperator3 = (L4_MABX_B.VSPD_HYST_KPH_APV_f >=
6536 L4_MABX_B.DataTypeConversion5_o);
6537
6538 /* Logic: '<S103>/Logical Operator' */
6539 L4_MABX_B.f_vspd_leq_than_hyst_and_target = (L4_MABX_B.RelationalOperator2_p &&
6540 L4_MABX_B.RelationalOperator3);
6541
6542 /* Logic: '<S103>/Logical Operator1' */
6543 L4_MABX_B.LogicalOperator1_mr = (L4_MABX_B.f_vspd_geq_than_target_plus_hys ||
6544 L4_MABX_B.f_target_is_stop_thresh || L4_MABX_B.Compare_eu ||
6545 L4_MABX_B.f_vspd_leq_than_hyst_and_target);
6546
6547 /* DataTypeConversion: '<S77>/Data Type Conversion4' */
6548 L4_MABX_B.DataTypeConversion4_d5 = AutonomousEnabled;
6549
6550 /* Logic: '<S103>/Logical Operator2' */
6551 L4_MABX_B.F_Brake_control_active = (L4_MABX_B.LogicalOperator1_mr &&
6552 L4_MABX_B.DataTypeConversion4_d5);
6553
6554 /* DataTypeConversion: '<S79>/Data Type Conversion4' */
6555 L4_MABX_B.DataTypeConversion4_ib = L4_MABX_B.SFunction1_o1_in;
6556
6557 /* DataTypeConversion: '<S77>/Data Type Conversion1' */
6558 PositionFinalLimited = L4_MABX_B.SFunction1_o8_g5;
6559 if (PositionFinalLimited < 256.0) {
6560 if (PositionFinalLimited >= 0.0) {
6561 starting_index = (uint8_T)PositionFinalLimited;
6562 } else {
6563 starting_index = 0U;
6564 }
6565 } else {
6566 starting_index = MAX_uint8_T;
6567 }
6568
6569 L4_MABX_B.DataTypeConversion1_ba = starting_index;
6570
6571 /* End of DataTypeConversion: '<S77>/Data Type Conversion1' */
6572
6573 /* DataTypeConversion: '<S77>/Data Type Conversion3' */
6574 L4_MABX_B.BrkPedArbBrakeSwitch_c = (ENUM_J1939_SWITCH_T)
6575 L4_MABX_B.DataTypeConversion1_ba;
6576
6577 /* DataTypeConversion: '<S203>/Data Type Conversion1' */
6578 L4_MABX_B.DataTypeConversion1_cy = L4_MABX_B.BrkPedArbBrakeSwitch_c;
6579
6580 /* RelationalOperator: '<S209>/Compare' incorporates:
6581 * Constant: '<S209>/Constant'
6582 */
6583 L4_MABX_B.Compare_e5 = (L4_MABX_B.DataTypeConversion1_cy ==
6584 L4_MABX_P.CompareToConstant2_const);
6585
6586 /* Logic: '<S203>/Logical Operator2' */
6587 L4_MABX_B.LogicalOperator2_n = !L4_MABX_B.Compare_e5;
6588
6589 /* DataTypeConversion: '<S203>/Data Type Conversion5' */
6590 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o4_o);
6591 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
6592 PositionFinalLimited = 0.0;
6593 } else {
6594 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
6595 }
6596
6597 L4_MABX_B.DataTypeConversion5_pw = (uint8_T)(PositionFinalLimited < 0.0 ?
6598 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
6599 (uint8_T)PositionFinalLimited);
6600
6601 /* End of DataTypeConversion: '<S203>/Data Type Conversion5' */
6602
6603 /* DataTypeConversion: '<S203>/Data Type Conversion3' */
6604 L4_MABX_B.DataTypeConversion3_l5 = (ENUM_J1939_SWITCH_T)
6605 L4_MABX_B.DataTypeConversion5_pw;
6606
6607 /* RelationalOperator: '<S207>/Compare' incorporates:
6608 * Constant: '<S207>/Constant'
6609 */
6610 L4_MABX_B.Compare_ih = (L4_MABX_B.DataTypeConversion3_l5 ==
6611 L4_MABX_P.CompareToConstant_const_e);
6612
6613 /* RelationalOperator: '<S208>/Compare' incorporates:
6614 * Constant: '<S208>/Constant'
6615 */
6616 L4_MABX_B.Compare_ex = (L4_MABX_B.DataTypeConversion3_l5 ==
6617 L4_MABX_P.CompareToConstant1_const_j);
6618
6619 /* Logic: '<S203>/BrakingActive2' */
6620 L4_MABX_B.BrakingActive2 = (L4_MABX_B.Compare_ih || L4_MABX_B.Compare_ex);
6621
6622 /* Logic: '<S203>/BrakingActive1' */
6623 L4_MABX_B.f_brake_sw_off = (L4_MABX_B.LogicalOperator2_n &&
6624 L4_MABX_B.BrakingActive2);
6625
6626 /* RelationalOperator: '<S210>/Compare' incorporates:
6627 * Constant: '<S210>/Constant'
6628 */
6629 L4_MABX_B.Compare_ay = (L4_MABX_B.SPN524_TransSelectedGear >
6630 L4_MABX_P.Constant_Value_il);
6631
6632 /* RelationalOperator: '<S211>/Compare' incorporates:
6633 * Constant: '<S211>/Constant'
6634 */
6635 L4_MABX_B.Compare_os = (L4_MABX_B.SPN523_TransCurrentGear >
6636 L4_MABX_P.Constant_Value_f);
6637
6638 /* Logic: '<S203>/Logical Operator1' */
6639 L4_MABX_B.f_brk_gov_inactive = !L4_MABX_B.F_Brake_control_active;
6640
6641 /* Logic: '<S203>/Logical Operator' */
6642 L4_MABX_B.LogicalOperator_k = (AutonomousEnabled && L4_MABX_B.f_brake_sw_off &&
6643 L4_MABX_B.Compare_ay && L4_MABX_B.Compare_os && L4_MABX_B.f_brk_gov_inactive);
6644
6645 /* Outputs for Enabled SubSystem: '<S79>/Throttle_controller_gov' incorporates:
6646 * EnablePort: '<S206>/Enable'
6647 */
6648 if (L4_MABX_B.LogicalOperator_k) {
6649 if (!L4_MABX_DW.Throttle_controller_gov_MODE) {
6650 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay1' */
6651 L4_MABX_DW.Unit_Delay1_DSTATE_p1 =
6652 L4_MABX_P.Unit_Delay1_InitialCondition_o;
6653
6654 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay' */
6655 L4_MABX_DW.Unit_Delay_DSTATE_lq = L4_MABX_P.Unit_Delay_InitialCondition_b2;
6656
6657 /* InitializeConditions for UnitDelay: '<S241>/Unit_Delay' */
6658 L4_MABX_DW.Unit_Delay_DSTATE_be = L4_MABX_P.Unit_Delay_InitialCondition_lj;
6659
6660 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay1' */
6661 L4_MABX_DW.Unit_Delay1_DSTATE_h5 =
6662 L4_MABX_P.Unit_Delay1_InitialCondition_a;
6663
6664 /* InitializeConditions for UnitDelay: '<S262>/Unit_Delay' */
6665 L4_MABX_DW.Unit_Delay_DSTATE_fi = L4_MABX_P.Unit_Delay_InitialCondition_bm;
6666
6667 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay2' */
6668 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq =
6669 L4_MABX_P.FixPtUnitDelay2_InitialCondit_a;
6670
6671 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay1' */
6672 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a0 =
6673 L4_MABX_P.FixPtUnitDelay1_InitialCondit_o;
6674
6675 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay2' */
6676 L4_MABX_DW.Unit_Delay2_DSTATE_m = L4_MABX_P.Unit_Delay2_InitialCondition_j;
6677
6678 /* InitializeConditions for UnitDelay: '<S216>/Unit_Delay' */
6679 L4_MABX_DW.Unit_Delay_DSTATE_fz = L4_MABX_P.Unit_Delay_InitialCondition_kg;
6680 L4_MABX_DW.Throttle_controller_gov_MODE = true;
6681 }
6682
6683 /* DataTypeConversion: '<S213>/Data Type Conversion9' */
6684 L4_MABX_B.DataTypeConversion9_h = L4_MABX_B.SFunction1_o4_k2;
6685
6686 /* DataTypeConversion: '<S213>/Data Type Conversion1' */
6687 L4_MABX_B.DataTypeConversion1_i = L4_MABX_B.SFunction1_o2_b0;
6688
6689 /* Sum: '<S213>/Add' */
6690 L4_MABX_B.Add_di = L4_MABX_B.DataTypeConversion9_h +
6691 L4_MABX_B.DataTypeConversion1_i;
6692
6693 /* RelationalOperator: '<S218>/Relational Operator1' incorporates:
6694 * Constant: '<S213>/Constant1'
6695 */
6696 L4_MABX_B.RelationalOperator1_n = (L4_MABX_B.Add_di >=
6697 L4_MABX_P.Constant1_Value_c);
6698
6699 /* RelationalOperator: '<S218>/Relational Operator' incorporates:
6700 * Constant: '<S213>/Constant3'
6701 */
6702 L4_MABX_B.RelationalOperator_d3 = (L4_MABX_B.Add_di <=
6703 L4_MABX_P.Constant3_Value_d);
6704
6705 /* Outputs for Atomic SubSystem: '<S218>/If_Then_Else1' */
6706
6707 /* Constant: '<S213>/Constant3' */
6708 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_d3,
6709 L4_MABX_P.Constant3_Value_d, L4_MABX_B.Add_di,
6710 &L4_MABX_B.If_Then_Else1_h);
6711
6712 /* End of Outputs for SubSystem: '<S218>/If_Then_Else1' */
6713
6714 /* Outputs for Atomic SubSystem: '<S218>/If_Then_Else' */
6715
6716 /* Constant: '<S213>/Constant1' */
6717 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_n,
6718 L4_MABX_P.Constant1_Value_c,
6719 L4_MABX_B.If_Then_Else1_h.Switch,
6720 &L4_MABX_B.If_Then_Else_ct);
6721
6722 /* End of Outputs for SubSystem: '<S218>/If_Then_Else' */
6723
6724 /* DataTypeConversion: '<S213>/Data Type Conversion2' */
6725 L4_MABX_B.DataTypeConversion2_id = L4_MABX_B.SPN514_NominalFrictionPercentTo;
6726
6727 /* RelationalOperator: '<S219>/Relational Operator1' incorporates:
6728 * Constant: '<S213>/Constant2'
6729 */
6730 L4_MABX_B.RelationalOperator1_ch = (L4_MABX_B.DataTypeConversion2_id >=
6731 L4_MABX_P.Constant2_Value_b);
6732
6733 /* RelationalOperator: '<S219>/Relational Operator' incorporates:
6734 * Constant: '<S213>/Constant4'
6735 */
6736 L4_MABX_B.RelationalOperator_j = (L4_MABX_B.DataTypeConversion2_id <=
6737 L4_MABX_P.Constant4_Value);
6738
6739 /* Outputs for Atomic SubSystem: '<S219>/If_Then_Else1' */
6740
6741 /* Constant: '<S213>/Constant4' */
6742 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_j,
6743 L4_MABX_P.Constant4_Value,
6744 L4_MABX_B.DataTypeConversion2_id,
6745 &L4_MABX_B.If_Then_Else1_kg);
6746
6747 /* End of Outputs for SubSystem: '<S219>/If_Then_Else1' */
6748
6749 /* Outputs for Atomic SubSystem: '<S219>/If_Then_Else' */
6750
6751 /* Constant: '<S213>/Constant2' */
6752 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_ch,
6753 L4_MABX_P.Constant2_Value_b,
6754 L4_MABX_B.If_Then_Else1_kg.Switch,
6755 &L4_MABX_B.If_Then_Else_bo);
6756
6757 /* End of Outputs for SubSystem: '<S219>/If_Then_Else' */
6758
6759 /* DataTypeConversion: '<S213>/Data Type Conversion3' */
6760 L4_MABX_B.DataTypeConversion3_h = L4_MABX_B.SPN2978_EstEngParasiticLossesPe;
6761
6762 /* RelationalOperator: '<S220>/Relational Operator1' incorporates:
6763 * Constant: '<S213>/Constant5'
6764 */
6765 L4_MABX_B.RelationalOperator1_l = (L4_MABX_B.DataTypeConversion3_h >=
6766 L4_MABX_P.Constant5_Value);
6767
6768 /* RelationalOperator: '<S220>/Relational Operator' incorporates:
6769 * Constant: '<S213>/Constant6'
6770 */
6771 L4_MABX_B.RelationalOperator_fd = (L4_MABX_B.DataTypeConversion3_h <=
6772 L4_MABX_P.Constant6_Value);
6773
6774 /* Outputs for Atomic SubSystem: '<S220>/If_Then_Else1' */
6775
6776 /* Constant: '<S213>/Constant6' */
6777 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_fd,
6778 L4_MABX_P.Constant6_Value,
6779 L4_MABX_B.DataTypeConversion3_h,
6780 &L4_MABX_B.If_Then_Else1_dz);
6781
6782 /* End of Outputs for SubSystem: '<S220>/If_Then_Else1' */
6783
6784 /* Outputs for Atomic SubSystem: '<S220>/If_Then_Else' */
6785
6786 /* Constant: '<S213>/Constant5' */
6787 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_l,
6788 L4_MABX_P.Constant5_Value,
6789 L4_MABX_B.If_Then_Else1_dz.Switch,
6790 &L4_MABX_B.If_Then_Else_br);
6791
6792 /* End of Outputs for SubSystem: '<S220>/If_Then_Else' */
6793
6794 /* DataTypeConversion: '<S217>/Data Type Conversion5' */
6795 L4_MABX_B.DataTypeConversion5_i = L4_MABX_B.SFunction1_o1_bn;
6796
6797 /* Lookup_n-D: '<S224>/1-D Lookup Table' */
6798 L4_MABX_B.Coeff_of_drag_Cd = look1_binlcapw(L4_MABX_B.DataTypeConversion5_i,
6799 L4_MABX_P.uDLookupTable_bp01Data, L4_MABX_P.uDLookupTable_tableData, 2U);
6800
6801 /* Gain: '<S224>/KPH_TO_M//S' */
6802 L4_MABX_B.KPH_TO_MS = L4_MABX_P.KPH_TO_MS_Gain *
6803 L4_MABX_B.DataTypeConversion5_i;
6804
6805 /* Math: '<S224>/Math Function'
6806 *
6807 * About '<S224>/Math Function':
6808 * Operator: magnitude^2
6809 */
6810 PositionFinalLimited = L4_MABX_B.KPH_TO_MS;
6811 L4_MABX_B.MathFunction = PositionFinalLimited * PositionFinalLimited;
6812
6813 /* DataTypeConversion: '<S217>/Data Type Conversion' */
6814 L4_MABX_B.DataTypeConversion_ik = L4_MABX_B.SFunction1_o1_n;
6815
6816 /* Gain: '<S224>/KPA_TO_PA' */
6817 L4_MABX_B.KPA_TO_PA = L4_MABX_P.KPA_TO_PA_Gain *
6818 L4_MABX_B.DataTypeConversion_ik;
6819
6820 /* DataTypeConversion: '<S217>/Data Type Conversion4' */
6821 L4_MABX_B.DataTypeConversion4_b = L4_MABX_B.SFunction1_o3_fv;
6822
6823 /* Sum: '<S224>/Add' incorporates:
6824 * Constant: '<S224>/Constant'
6825 */
6826 L4_MABX_B.Add_o = L4_MABX_B.DataTypeConversion4_b + L4_MABX_P.Constant_Value;
6827
6828 /* Product: '<S224>/Product' incorporates:
6829 * Constant: '<S224>/Constant1'
6830 */
6831 L4_MABX_B.Product_n = L4_MABX_B.Add_o * L4_MABX_P.Constant1_Value_p;
6832
6833 /* Product: '<S224>/Divide' */
6834 L4_MABX_B.Air_density_kgm3 = L4_MABX_B.KPA_TO_PA / L4_MABX_B.Product_n;
6835
6836 /* Product: '<S224>/Product1' incorporates:
6837 * Constant: '<S217>/Veh_Frontal_Area_m^2'
6838 * Constant: '<S224>/Constant2'
6839 */
6840 L4_MABX_B.Aerodynamic_resistance_Ra = L4_MABX_B.Coeff_of_drag_Cd *
6841 L4_MABX_P.Veh_Frontal_Area_m2_Value * L4_MABX_B.MathFunction *
6842 L4_MABX_B.Air_density_kgm3 * L4_MABX_P.Constant2_Value_h;
6843
6844 /* DataTypeConversion: '<S217>/Data Type Conversion6' */
6845 L4_MABX_B.DataTypeConversion6_fq = L4_MABX_B.PitchAngleExRange;
6846
6847 /* Product: '<S225>/Divide' incorporates:
6848 * Constant: '<S225>/Constant2'
6849 * Constant: '<S225>/Constant3'
6850 */
6851 L4_MABX_B.grade_angle_radians = L4_MABX_B.DataTypeConversion6_fq *
6852 L4_MABX_P.Constant2_Value_bc / L4_MABX_P.Constant3_Value_n;
6853
6854 /* Trigonometry: '<S225>/Trigonometric Function' */
6855 L4_MABX_B.TrigonometricFunction_a = sin(L4_MABX_B.grade_angle_radians);
6856
6857 /* Product: '<S225>/Product1' incorporates:
6858 * Constant: '<S225>/Constant1'
6859 */
6860 L4_MABX_B.Gradient_resistance_Rg = L4_MABX_B.SPN1760_GrossCombinationVehicle
6861 * L4_MABX_B.TrigonometricFunction_a * L4_MABX_P.Constant1_Value_a;
6862
6863 /* Gain: '<S228>/KPA_TO_M//S' */
6864 L4_MABX_B.KPA_TO_MS = L4_MABX_P.KPA_TO_MS_Gain *
6865 L4_MABX_B.DataTypeConversion5_i;
6866
6867 /* Product: '<S228>/Divide2' incorporates:
6868 * Constant: '<S228>/Constant2'
6869 * Constant: '<S228>/Constant6'
6870 */
6871 L4_MABX_B.Divide2_c = L4_MABX_P.Constant2_Value_bq * L4_MABX_B.KPA_TO_MS /
6872 L4_MABX_P.Constant6_Value_g;
6873
6874 /* Math: '<S228>/Math Function'
6875 *
6876 * About '<S228>/Math Function':
6877 * Operator: magnitude^2
6878 */
6879 PositionFinalLimited = L4_MABX_B.Divide2_c;
6880 L4_MABX_B.MathFunction_l = PositionFinalLimited * PositionFinalLimited;
6881
6882 /* Sum: '<S228>/Add' incorporates:
6883 * Constant: '<S228>/Constant1'
6884 */
6885 L4_MABX_B.Add_nj = L4_MABX_P.Constant1_Value_m + L4_MABX_B.MathFunction_l;
6886
6887 /* Outputs for Atomic SubSystem: '<S222>/If_Then_Else' */
6888
6889 /* Constant: '<S217>/TIRE1_tire_pressure' incorporates:
6890 * Constant: '<S222>/Truck166_tire_pressure'
6891 */
6892 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_k,
6893 L4_MABX_P.TIRE1_tire_pressure_Value,
6894 L4_MABX_P.Truck166_tire_pressure_Value,
6895 &L4_MABX_B.If_Then_Else_nr);
6896
6897 /* End of Outputs for SubSystem: '<S222>/If_Then_Else' */
6898
6899 /* Gain: '<S228>/KPA_TO_BAR' */
6900 L4_MABX_B.KPA_TO_BAR = L4_MABX_P.KPA_TO_BAR_Gain *
6901 L4_MABX_B.If_Then_Else_nr.Switch;
6902
6903 /* Product: '<S228>/Divide' */
6904 L4_MABX_B.Divide_kj = L4_MABX_B.Add_nj / L4_MABX_B.KPA_TO_BAR;
6905
6906 /* Sum: '<S228>/Add1' incorporates:
6907 * Constant: '<S228>/Constant'
6908 */
6909 L4_MABX_B.Coeff_of_rolling_resistance_Cr = L4_MABX_P.Constant_Value_h +
6910 L4_MABX_B.Divide_kj;
6911
6912 /* Product: '<S226>/Divide1' incorporates:
6913 * Constant: '<S226>/Constant4'
6914 * Constant: '<S226>/Constant5'
6915 */
6916 L4_MABX_B.grade_angle_radians_a = L4_MABX_B.DataTypeConversion6_fq *
6917 L4_MABX_P.Constant4_Value_o / L4_MABX_P.Constant5_Value_p;
6918
6919 /* Trigonometry: '<S226>/Trigonometric Function' */
6920 L4_MABX_B.TrigonometricFunction_e = cos(L4_MABX_B.grade_angle_radians_a);
6921
6922 /* Product: '<S226>/Product2' incorporates:
6923 * Constant: '<S226>/Constant3'
6924 */
6925 L4_MABX_B.Rolling_resistance_Rr = L4_MABX_B.Coeff_of_rolling_resistance_Cr *
6926 L4_MABX_B.SPN1760_GrossCombinationVehicle *
6927 L4_MABX_B.TrigonometricFunction_e * L4_MABX_P.Constant3_Value_p;
6928
6929 /* Sum: '<S222>/Add' incorporates:
6930 * Constant: '<S222>/Constant'
6931 */
6932 L4_MABX_B.TotalTractiveForce_N = ((L4_MABX_B.Aerodynamic_resistance_Ra +
6933 L4_MABX_B.Gradient_resistance_Rg) + L4_MABX_B.Rolling_resistance_Rr) +
6934 L4_MABX_P.Constant_Value_g;
6935
6936 /* Saturate: '<S217>/Saturation' */
6937 DeltaTime = L4_MABX_B.SPN526_TransActualGearRatio;
6938 Time56 = L4_MABX_P.Saturation_LowerSat_p;
6939 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_n;
6940 if (DeltaTime > PositionFinalLimited) {
6941 L4_MABX_B.Saturation_g = PositionFinalLimited;
6942 } else if (DeltaTime < Time56) {
6943 L4_MABX_B.Saturation_g = Time56;
6944 } else {
6945 L4_MABX_B.Saturation_g = DeltaTime;
6946 }
6947
6948 /* End of Saturate: '<S217>/Saturation' */
6949
6950 /* MATLAB Function: '<S217>/F_wheel_to_Tq_eng' incorporates:
6951 * Constant: '<S217>/N_rar'
6952 * Constant: '<S217>/R_wheel_m'
6953 * Constant: '<S217>/eta'
6954 */
6955 /* MATLAB Function 'STATE_CONTROL_10ms/Throttle_controller_gov/Determine_engine_torque_and_losses/CalculateRoadLoadTorque/F_wheel_to_Tq_eng': '<S223>:1' */
6956 /* '<S223>:1:3' */
6957 L4_MABX_B.road_load_tq = L4_MABX_B.TotalTractiveForce_N *
6958 L4_MABX_P.R_wheel_m_Value / L4_MABX_P.N_rar_Value / L4_MABX_B.Saturation_g
6959 / L4_MABX_P.eta_Value;
6960
6961 /* DataTypeConversion: '<S217>/Data Type Conversion1' */
6962 L4_MABX_B.DataTypeConversion1_be = L4_MABX_B.SPN544_EngineReferenceTorque;
6963
6964 /* Product: '<S217>/Divide' */
6965 L4_MABX_B.RoadLoadTorque_fract = L4_MABX_B.road_load_tq /
6966 L4_MABX_B.DataTypeConversion1_be;
6967
6968 /* Gain: '<S217>/Gain' */
6969 L4_MABX_B.RoadLoadTorque_pct = L4_MABX_P.Gain_Gain_n *
6970 L4_MABX_B.RoadLoadTorque_fract;
6971
6972 /* Outputs for Atomic SubSystem: '<S213>/If_Then_Else' */
6973
6974 /* Constant: '<S213>/UseFeedForwardRoadLoad' incorporates:
6975 * Constant: '<S213>/ZeroRoadLoadCPV'
6976 */
6977 L4_MABX_If_Then_Else(L4_MABX_P.UseFeedForwardRoadLoad_Value,
6978 L4_MABX_B.RoadLoadTorque_pct,
6979 L4_MABX_P.ZeroRoadLoadCPV_Value,
6980 &L4_MABX_B.If_Then_Else_a);
6981
6982 /* End of Outputs for SubSystem: '<S213>/If_Then_Else' */
6983
6984 /* Sum: '<S213>/Add1' */
6985 L4_MABX_B.FeedForwardTorque_pct = (L4_MABX_B.If_Then_Else_bo.Switch +
6986 L4_MABX_B.If_Then_Else_br.Switch) + L4_MABX_B.If_Then_Else_a.Switch;
6987
6988 /* UnitDelay: '<S214>/Unit_Delay1' */
6989 L4_MABX_B.Unit_Delay1_m = L4_MABX_DW.Unit_Delay1_DSTATE_p1;
6990
6991 /* Logic: '<S214>/Logical Operator' incorporates:
6992 * Constant: '<S214>/Constant1'
6993 */
6994 L4_MABX_B.f_gpid_reset = (L4_MABX_P.Constant1_Value_g1 ||
6995 L4_MABX_B.Unit_Delay1_m);
6996
6997 /* Sum: '<S214>/Subtract' */
6998 L4_MABX_B.Subtract_f = L4_MABX_B.VSPD_TARGET_KPH_APV_g -
6999 L4_MABX_B.VSPD_HYST_KPH_APV_f;
7000
7001 /* RelationalOperator: '<S214>/Relational Operator' */
7002 L4_MABX_B.RelationalOperator_fl = (L4_MABX_B.DataTypeConversion4_ib >
7003 L4_MABX_B.Subtract_f);
7004
7005 /* UnitDelay: '<S214>/Unit_Delay' */
7006 L4_MABX_B.Unit_Delay_d5 = L4_MABX_DW.Unit_Delay_DSTATE_lq;
7007
7008 /* RelationalOperator: '<S214>/Relational Operator1' */
7009 L4_MABX_B.RelationalOperator1_d = (L4_MABX_B.RelationalOperator_fl !=
7010 L4_MABX_B.Unit_Delay_d5);
7011
7012 /* Lookup_n-D: '<S235>/2D_Lookup_Table' */
7013 L4_MABX_B.uD_Lookup_Table_am = look2_binlcapw
7014 (L4_MABX_B.SPN1760_GrossCombinationVehicle,
7015 L4_MABX_B.SPN526_TransActualGearRatio, TQ_DEM_MASS_STEP_MPV,
7016 TQ_DEM_GEAR_RATIO_STEP_MPV, TQ_DEM_KP_DATA_MPV,
7017 L4_MABX_P.uD_Lookup_Table_maxIndex, 8U);
7018
7019 /* Lookup_n-D: '<S236>/2D_Lookup_Table' */
7020 L4_MABX_B.uD_Lookup_Table_o = look2_binlcapw
7021 (L4_MABX_B.SPN1760_GrossCombinationVehicle,
7022 L4_MABX_B.SPN526_TransActualGearRatio, TQ_DEM_MASS_STEP_MPV,
7023 TQ_DEM_GEAR_RATIO_STEP_MPV, TQ_DEM_KI_DATA_MPV,
7024 L4_MABX_P.uD_Lookup_Table_maxIndex_p, 8U);
7025
7026 /* Lookup_n-D: '<S237>/2D_Lookup_Table' */
7027 L4_MABX_B.uD_Lookup_Table_h = look2_binlcapw
7028 (L4_MABX_B.SPN1760_GrossCombinationVehicle,
7029 L4_MABX_B.SPN526_TransActualGearRatio, TQ_DEM_MASS_STEP_MPV,
7030 TQ_DEM_GEAR_RATIO_STEP_MPV, TQ_DEM_KD_DATA_MPV,
7031 L4_MABX_P.uD_Lookup_Table_maxIndex_a, 8U);
7032
7033 /* Abs: '<S238>/Abs' */
7034 L4_MABX_B.Abs_igm = fabs(L4_MABX_B.uD_Lookup_Table_o);
7035
7036 /* Abs: '<S238>/Abs1' */
7037 L4_MABX_B.Abs1_a = fabs(L4_MABX_B.uD_Lookup_Table_h);
7038
7039 /* UnitDelay: '<S241>/Unit_Delay' */
7040 L4_MABX_B.Unit_Delay_i0 = L4_MABX_DW.Unit_Delay_DSTATE_be;
7041
7042 /* Logic: '<S241>/Logical Operator1' */
7043 L4_MABX_B.LogicalOperator1_ob = (L4_MABX_B.Unit_Delay_i0 ||
7044 L4_MABX_B.f_gpid_reset);
7045
7046 /* UnitDelay: '<S261>/Unit_Delay1' */
7047 L4_MABX_B.Unit_Delay1_dw = L4_MABX_DW.Unit_Delay1_DSTATE_h5;
7048
7049 /* Logic: '<S261>/Logical Operator' */
7050 L4_MABX_B.LogicalOperator_at = (L4_MABX_B.LogicalOperator1_ob ||
7051 L4_MABX_B.Unit_Delay1_dw);
7052
7053 /* UnitDelay: '<S262>/Unit_Delay' */
7054 L4_MABX_B.Unit_Delay_ne = L4_MABX_DW.Unit_Delay_DSTATE_fi;
7055
7056 /* Logic: '<S262>/Logical Operator1' */
7057 L4_MABX_B.LogicalOperator1_kz = (L4_MABX_B.LogicalOperator1_ob ||
7058 L4_MABX_B.Unit_Delay_ne);
7059
7060 /* UnitDelay: '<S266>/FixPt Unit Delay2' */
7061 L4_MABX_B.FixPtUnitDelay2_a = L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq;
7062
7063 /* UnitDelay: '<S266>/FixPt Unit Delay1' */
7064 L4_MABX_B.Xold_a = L4_MABX_DW.FixPtUnitDelay1_DSTATE_a0;
7065
7066 /* Switch: '<S266>/Init' */
7067 if (L4_MABX_B.FixPtUnitDelay2_a != 0) {
7068 L4_MABX_B.Init_pu = L4_MABX_B.VSPD_TARGET_KPH_APV_g;
7069 } else {
7070 L4_MABX_B.Init_pu = L4_MABX_B.Xold_a;
7071 }
7072
7073 /* End of Switch: '<S266>/Init' */
7074
7075 /* Abs: '<S262>/Abs' incorporates:
7076 * Constant: '<S206>/TqDemSlewInc'
7077 */
7078 L4_MABX_B.Abs_n = fabs(L4_MABX_P.TqDemSlewInc_Value);
7079
7080 /* Product: '<S262>/Product1' incorporates:
7081 * Constant: '<S206>/TqDemDt'
7082 */
7083 L4_MABX_B.Product1_g = L4_MABX_B.Abs_n * L4_MABX_P.TqDemDt_Value;
7084
7085 /* Sum: '<S262>/Add1' */
7086 L4_MABX_B.Add1_g = L4_MABX_B.Init_pu + L4_MABX_B.Product1_g;
7087
7088 /* MinMax: '<S262>/MinMax2' */
7089 DeltaTime = L4_MABX_B.VSPD_TARGET_KPH_APV_g;
7090 PositionFinalLimited = L4_MABX_B.Add1_g;
7091 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7092 PositionFinalLimited = DeltaTime;
7093 }
7094
7095 L4_MABX_B.MinMax2_n = PositionFinalLimited;
7096
7097 /* End of MinMax: '<S262>/MinMax2' */
7098
7099 /* Abs: '<S262>/Abs1' incorporates:
7100 * Constant: '<S206>/TqDemSlewDec'
7101 */
7102 L4_MABX_B.Abs1_d = fabs(L4_MABX_P.TqDemSlewDec_Value);
7103
7104 /* Product: '<S262>/Product2' incorporates:
7105 * Constant: '<S206>/TqDemDt'
7106 */
7107 L4_MABX_B.Product2_bn = L4_MABX_P.TqDemDt_Value * L4_MABX_B.Abs1_d;
7108
7109 /* Sum: '<S262>/Subtract1' */
7110 L4_MABX_B.Subtract1_o = L4_MABX_B.Init_pu - L4_MABX_B.Product2_bn;
7111
7112 /* MinMax: '<S262>/MinMax1' */
7113 DeltaTime = L4_MABX_B.MinMax2_n;
7114 PositionFinalLimited = L4_MABX_B.Subtract1_o;
7115 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7116 PositionFinalLimited = DeltaTime;
7117 }
7118
7119 L4_MABX_B.MinMax1_g = PositionFinalLimited;
7120
7121 /* End of MinMax: '<S262>/MinMax1' */
7122
7123 /* Outputs for Atomic SubSystem: '<S262>/If_Then_Else' */
7124 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_kz,
7125 L4_MABX_B.DataTypeConversion4_ib, L4_MABX_B.MinMax1_g,
7126 &L4_MABX_B.If_Then_Else_cp);
7127
7128 /* End of Outputs for SubSystem: '<S262>/If_Then_Else' */
7129
7130 /* Sum: '<S239>/Subtract' */
7131 L4_MABX_B.Subtract_jb = L4_MABX_B.If_Then_Else_cp.Switch -
7132 L4_MABX_B.DataTypeConversion4_ib;
7133
7134 /* MinMax: '<S261>/MinMax1' incorporates:
7135 * Constant: '<S206>/TqDemDt'
7136 * Constant: '<S206>/TqDemTFildCtrlErrorSecs'
7137 */
7138 DeltaTime = L4_MABX_P.TqDemDt_Value;
7139 PositionFinalLimited = L4_MABX_P.TqDemTFildCtrlErrorSecs_Value;
7140 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7141 PositionFinalLimited = DeltaTime;
7142 }
7143
7144 L4_MABX_B.MinMax1_dx = PositionFinalLimited;
7145
7146 /* End of MinMax: '<S261>/MinMax1' */
7147
7148 /* Saturate: '<S261>/Saturation' */
7149 DeltaTime = L4_MABX_B.MinMax1_dx;
7150 Time56 = L4_MABX_P.Saturation_LowerSat_g5;
7151 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_f;
7152 if (DeltaTime > PositionFinalLimited) {
7153 L4_MABX_B.Saturation_d = PositionFinalLimited;
7154 } else if (DeltaTime < Time56) {
7155 L4_MABX_B.Saturation_d = Time56;
7156 } else {
7157 L4_MABX_B.Saturation_d = DeltaTime;
7158 }
7159
7160 /* End of Saturate: '<S261>/Saturation' */
7161
7162 /* Product: '<S261>/Divide' incorporates:
7163 * Constant: '<S206>/TqDemDt'
7164 */
7165 L4_MABX_B.Divide_n = L4_MABX_P.TqDemDt_Value / L4_MABX_B.Saturation_d;
7166
7167 /* Product: '<S261>/Product2' */
7168 L4_MABX_B.Product2_l = L4_MABX_B.Subtract_jb * L4_MABX_B.Divide_n;
7169
7170 /* Sum: '<S261>/Subtract1' incorporates:
7171 * Constant: '<S261>/Constant1'
7172 */
7173 L4_MABX_B.Subtract1_k = L4_MABX_P.Constant1_Value_ci - L4_MABX_B.Divide_n;
7174
7175 /* UnitDelay: '<S261>/Unit_Delay2' */
7176 L4_MABX_B.Unit_Delay2_o = L4_MABX_DW.Unit_Delay2_DSTATE_m;
7177
7178 /* Product: '<S261>/Product1' */
7179 L4_MABX_B.Product1_p = L4_MABX_B.Subtract1_k * L4_MABX_B.Unit_Delay2_o;
7180
7181 /* Sum: '<S261>/Add1' */
7182 L4_MABX_B.Add1_i = L4_MABX_B.Product2_l + L4_MABX_B.Product1_p;
7183
7184 /* Outputs for Atomic SubSystem: '<S261>/If_Then_Else' */
7185 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_at, L4_MABX_B.Subtract_jb,
7186 L4_MABX_B.Add1_i, &L4_MABX_B.If_Then_Else_k2);
7187
7188 /* End of Outputs for SubSystem: '<S261>/If_Then_Else' */
7189
7190 /* RelationalOperator: '<S246>/Compare' incorporates:
7191 * Constant: '<S246>/Constant'
7192 */
7193 L4_MABX_B.Compare_go = (L4_MABX_B.Abs1_a >
7194 L4_MABX_P.CompareToConstant1_const_i);
7195
7196 /* Outputs for Enabled SubSystem: '<S238>/Calculate_D_term' */
7197
7198 /* Constant: '<S206>/TqDemDt' incorporates:
7199 * Constant: '<S206>/TqDemTFildTSecs'
7200 */
7201 L4_MABX_Calculate_D_term(L4_MABX_B.Compare_go, L4_MABX_B.uD_Lookup_Table_h,
7202 L4_MABX_P.TqDemDt_Value, L4_MABX_B.LogicalOperator1_ob,
7203 L4_MABX_B.If_Then_Else_k2.Switch, L4_MABX_P.TqDemTFildTSecs_Value,
7204 &L4_MABX_B.Calculate_D_term_h, &L4_MABX_DW.Calculate_D_term_h,
7205 &L4_MABX_P.Calculate_D_term_h);
7206
7207 /* End of Outputs for SubSystem: '<S238>/Calculate_D_term' */
7208
7209 /* Product: '<S244>/Product' */
7210 L4_MABX_B.Product_i = L4_MABX_B.uD_Lookup_Table_am *
7211 L4_MABX_B.If_Then_Else_k2.Switch;
7212
7213 /* RelationalOperator: '<S206>/Relational Operator' */
7214 L4_MABX_B.RelationalOperator_a = (L4_MABX_B.SPN524_TransSelectedGear !=
7215 L4_MABX_B.SPN523_TransCurrentGear);
7216
7217 /* UnitDelay: '<S216>/Unit_Delay' */
7218 L4_MABX_B.Unit_Delay_m = L4_MABX_DW.Unit_Delay_DSTATE_fz;
7219
7220 /* RelationalOperator: '<S245>/Compare' incorporates:
7221 * Constant: '<S245>/Constant'
7222 */
7223 L4_MABX_B.Compare_pj = (L4_MABX_B.Abs_igm >
7224 L4_MABX_P.CompareToConstant_const_d);
7225
7226 /* Outputs for Enabled SubSystem: '<S238>/Calculate_I_term' */
7227
7228 /* Constant: '<S206>/TqDemDt' incorporates:
7229 * Constant: '<S206>/GpidAwCondIntegration'
7230 * Constant: '<S206>/TqDemAwHyst'
7231 */
7232 L4_MABX_Calculate_I_term(L4_MABX_B.Compare_pj, L4_MABX_B.Product_i,
7233 L4_MABX_B.uD_Lookup_Table_o, L4_MABX_B.If_Then_Else_ct.Switch,
7234 L4_MABX_B.If_Then_Else_k2.Switch, L4_MABX_B.LogicalOperator1_ob,
7235 L4_MABX_P.TqDemDt_Value, L4_MABX_B.FeedForwardTorque_pct,
7236 L4_MABX_P.GpidAwCondIntegration_Value, L4_MABX_P.TqDemAwHyst_Value,
7237 L4_MABX_B.RelationalOperator_a, L4_MABX_B.Unit_Delay_m,
7238 &L4_MABX_B.Calculate_I_term_n, &L4_MABX_DW.Calculate_I_term_n,
7239 &L4_MABX_P.Calculate_I_term_n);
7240
7241 /* End of Outputs for SubSystem: '<S238>/Calculate_I_term' */
7242
7243 /* RelationalOperator: '<S264>/min_relop' incorporates:
7244 * Constant: '<S206>/TqDemSlewInc'
7245 * Constant: '<S264>/min_val'
7246 */
7247 L4_MABX_B.min_relop_cb = (L4_MABX_P.CheckStaticLowerBound_min_b <=
7248 L4_MABX_P.TqDemSlewInc_Value);
7249
7250 /* Assertion: '<S264>/Assertion' */
7251 utAssert(L4_MABX_B.min_relop_cb);
7252
7253 /* Sum: '<S240>/Add' */
7254 L4_MABX_B.Add_ds = ((L4_MABX_B.Product_i +
7255 L4_MABX_B.Calculate_I_term_n.If_Then_Else.Switch) +
7256 L4_MABX_B.Calculate_D_term_h.Subtract) +
7257 L4_MABX_B.FeedForwardTorque_pct;
7258
7259 /* RelationalOperator: '<S267>/Relational Operator1' incorporates:
7260 * Constant: '<S206>/TqDemLimMax'
7261 */
7262 L4_MABX_B.RelationalOperator1_ja = (L4_MABX_B.Add_ds >=
7263 L4_MABX_P.TqDemLimMax_Value);
7264
7265 /* RelationalOperator: '<S267>/Relational Operator' incorporates:
7266 * Constant: '<S206>/TqDemLimMin'
7267 */
7268 L4_MABX_B.RelationalOperator_p = (L4_MABX_B.Add_ds <=
7269 L4_MABX_P.TqDemLimMin_Value);
7270
7271 /* Outputs for Atomic SubSystem: '<S267>/If_Then_Else1' */
7272
7273 /* Constant: '<S206>/TqDemLimMin' */
7274 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_p,
7275 L4_MABX_P.TqDemLimMin_Value, L4_MABX_B.Add_ds,
7276 &L4_MABX_B.If_Then_Else1_h3);
7277
7278 /* End of Outputs for SubSystem: '<S267>/If_Then_Else1' */
7279
7280 /* Outputs for Atomic SubSystem: '<S267>/If_Then_Else' */
7281
7282 /* Constant: '<S206>/TqDemLimMax' */
7283 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_ja,
7284 L4_MABX_P.TqDemLimMax_Value,
7285 L4_MABX_B.If_Then_Else1_h3.Switch,
7286 &L4_MABX_B.If_Then_Else_pi);
7287
7288 /* End of Outputs for SubSystem: '<S267>/If_Then_Else' */
7289
7290 /* SignalConversion: '<S206>/OutportBufferForPID_d_term' */
7291 L4_MABX_B.PID_d_term_c = L4_MABX_B.Calculate_D_term_h.Subtract;
7292
7293 /* SignalConversion: '<S206>/OutportBufferForPID_hold_i_term_f' */
7294 L4_MABX_B.PID_hold_i_term_f_b =
7295 L4_MABX_B.Calculate_I_term_n.LogicalOperator2;
7296
7297 /* SignalConversion: '<S206>/OutportBufferForPID_i_term' */
7298 L4_MABX_B.PID_i_term_c = L4_MABX_B.Calculate_I_term_n.If_Then_Else.Switch;
7299 } else {
7300 if (L4_MABX_DW.Throttle_controller_gov_MODE) {
7301 /* Disable for Enabled SubSystem: '<S238>/Calculate_D_term' */
7302 if (L4_MABX_DW.Calculate_D_term_h.Calculate_D_term_MODE) {
7303 L4_Calculate_D_term_Disable(&L4_MABX_B.Calculate_D_term_h,
7304 &L4_MABX_DW.Calculate_D_term_h, &L4_MABX_P.Calculate_D_term_h);
7305 }
7306
7307 /* End of Disable for SubSystem: '<S238>/Calculate_D_term' */
7308
7309 /* Disable for Enabled SubSystem: '<S238>/Calculate_I_term' */
7310 if (L4_MABX_DW.Calculate_I_term_n.Calculate_I_term_MODE) {
7311 L4_Calculate_I_term_Disable(&L4_MABX_B.Calculate_I_term_n,
7312 &L4_MABX_DW.Calculate_I_term_n, &L4_MABX_P.Calculate_I_term_n);
7313 }
7314
7315 /* End of Disable for SubSystem: '<S238>/Calculate_I_term' */
7316
7317 /* Disable for Outport: '<S206>/PID_output' */
7318 L4_MABX_B.If_Then_Else_pi.Switch = L4_MABX_P.PID_output_Y0_c;
7319
7320 /* Disable for Outport: '<S206>/PID_output_unlim' */
7321 L4_MABX_B.Add_ds = L4_MABX_P.PID_output_unlim_Y0;
7322
7323 /* Disable for Outport: '<S206>/PID_control_error' */
7324 L4_MABX_B.If_Then_Else_k2.Switch = L4_MABX_P.PID_control_error_Y0;
7325
7326 /* Disable for Outport: '<S206>/PID_p_term' */
7327 L4_MABX_B.Product_i = L4_MABX_P.PID_p_term_Y0;
7328
7329 /* Disable for Outport: '<S206>/PID_i_term' */
7330 L4_MABX_B.PID_i_term_c = L4_MABX_P.PID_i_term_Y0;
7331
7332 /* Disable for Outport: '<S206>/PID_d_term' */
7333 L4_MABX_B.PID_d_term_c = L4_MABX_P.PID_d_term_Y0;
7334
7335 /* Disable for Outport: '<S206>/PID_hold_i_term_f' */
7336 L4_MABX_B.PID_hold_i_term_f_b = L4_MABX_P.PID_hold_i_term_f_Y0;
7337 L4_MABX_DW.Throttle_controller_gov_MODE = false;
7338 }
7339 }
7340
7341 /* End of Outputs for SubSystem: '<S79>/Throttle_controller_gov' */
7342
7343 /* Switch: '<S79>/Switch' incorporates:
7344 * Constant: '<S79>/Constant3'
7345 */
7346 if (L4_MABX_B.F_Brake_control_active) {
7347 L4_MABX_B.ThrottlePID_Y_m = L4_MABX_P.Constant3_Value;
7348 } else {
7349 /* DataTypeConversion: '<S79>/Data Type Conversion3' */
7350 L4_MABX_B.DataTypeConversion3_m = L4_MABX_B.SPN544_EngineReferenceTorque;
7351
7352 /* Product: '<S79>/Product' incorporates:
7353 * Constant: '<S79>/Constant2'
7354 */
7355 L4_MABX_B.ThrottlePID_Y_c = L4_MABX_B.If_Then_Else_pi.Switch *
7356 L4_MABX_B.DataTypeConversion3_m * L4_MABX_P.Constant2_Value;
7357 L4_MABX_B.ThrottlePID_Y_m = L4_MABX_B.ThrottlePID_Y_c;
7358 }
7359
7360 /* End of Switch: '<S79>/Switch' */
7361
7362 /* MultiPortSwitch: '<S83>/Multiport Switch' incorporates:
7363 * Constant: '<S83>/APTC_DISABLED_PEDAL_POSITION_APV'
7364 * Constant: '<S83>/APTC_PEDAL_POS_SIG_SOURCE_APV'
7365 */
7366 switch (L4_MABX_P.APTC_PEDAL_POS_SIG_SOURCE_APV_V) {
7367 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_DISABLED:
7368 L4_MABX_B.MultiportSwitch = L4_MABX_P.APTC_DISABLED_PEDAL_POSITION_AP;
7369 break;
7370
7371 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_CAN_EEC2_00:
7372 L4_MABX_B.MultiportSwitch = L4_MABX_B.uDLookupTable;
7373 break;
7374
7375 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_SW_EMULATION:
7376 L4_MABX_B.MultiportSwitch = L4_MABX_B.ThrottlePID_Y_m;
7377 break;
7378
7379 case ENUM_PEDAL_POS_SIGNAL_SOURCE_T_CAN_EEC2_00_AND_SW_EMULATION:
7380 /* MinMax: '<S83>/MinMax' */
7381 DeltaTime = L4_MABX_B.uDLookupTable;
7382 PositionFinalLimited = L4_MABX_B.ThrottlePID_Y_m;
7383 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7384 PositionFinalLimited = DeltaTime;
7385 }
7386
7387 L4_MABX_B.MinMax_p = PositionFinalLimited;
7388
7389 /* End of MinMax: '<S83>/MinMax' */
7390 L4_MABX_B.MultiportSwitch = L4_MABX_B.MinMax_p;
7391 break;
7392
7393 default:
7394 L4_MABX_B.MultiportSwitch = L4_MABX_P.APTC_DISABLED_PEDAL_POSITION_AP;
7395 break;
7396 }
7397
7398 /* End of MultiPortSwitch: '<S83>/Multiport Switch' */
7399
7400 /* Outputs for Atomic SubSystem: '<S83>/If_Then_Else1' */
7401 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_d, L4_MABX_B.uDLookupTable,
7402 L4_MABX_B.MultiportSwitch, &L4_MABX_B.If_Then_Else1_l);
7403
7404 /* End of Outputs for SubSystem: '<S83>/If_Then_Else1' */
7405
7406 /* DataTypeConversion: '<S82>/Data Type Conversion1' */
7407 L4_MABX_B.DataTypeConversion1_n3 = L4_MABX_B.SFunction1_o5_f1;
7408
7409 /* Lookup_n-D: '<S85>/2D_Lookup_Table' */
7410 L4_MABX_B.uD_Lookup_Table = look2_binlcapw(L4_MABX_B.If_Then_Else1_l.Switch,
7411 L4_MABX_B.DataTypeConversion1_n3, APTC_TRQ_PED_INV_MAP_TRQ_STEPS,
7412 APTC_TRQ_PED_TRQ_ESPD_STEP_MPV, APTC_TRQ_PED_INV_MAP_PED_POS_MPV,
7413 L4_MABX_P.uD_Lookup_Table_maxIndex_h, 83U);
7414
7415 /* Logic: '<S82>/Logical Operator' */
7416 L4_MABX_B.LogicalOperator_j2 = !AutonomousEnabled;
7417
7418 /* Outputs for Atomic SubSystem: '<S82>/If_Then_Else' */
7419 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_j2, Pedal_pwm_position,
7420 L4_MABX_B.uD_Lookup_Table, &L4_MABX_B.If_Then_Else_fh);
7421
7422 /* End of Outputs for SubSystem: '<S82>/If_Then_Else' */
7423
7424 /* RelationalOperator: '<S75>/Relational Operator' incorporates:
7425 * Constant: '<S75>/Constant'
7426 */
7427 L4_MABX_B.APTC_arb_pedal_low_idl_sw_o = (APTC_PEDAL_LOW_IDLE_SW_THR_APV >
7428 L4_MABX_B.If_Then_Else_fh.Switch);
7429
7430 /* DataTypeConversion: '<S84>/Data Type Conversion1' */
7431 L4_MABX_B.DataTypeConversion1_av = L4_MABX_B.SPN544_EngineReferenceTorque;
7432
7433 /* RelationalOperator: '<S89>/Relational Operator1' incorporates:
7434 * Constant: '<S84>/EngRefTqLimHigh'
7435 */
7436 L4_MABX_B.RelationalOperator1_i = (L4_MABX_B.DataTypeConversion1_av >=
7437 L4_MABX_P.EngRefTqLimHigh_Value);
7438
7439 /* RelationalOperator: '<S89>/Relational Operator' incorporates:
7440 * Constant: '<S84>/EngRefTqLimLow'
7441 */
7442 L4_MABX_B.RelationalOperator_c = (L4_MABX_B.DataTypeConversion1_av <=
7443 L4_MABX_P.EngRefTqLimLow_Value);
7444
7445 /* Outputs for Atomic SubSystem: '<S89>/If_Then_Else1' */
7446
7447 /* Constant: '<S84>/EngRefTqLimLow' */
7448 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_c,
7449 L4_MABX_P.EngRefTqLimLow_Value,
7450 L4_MABX_B.DataTypeConversion1_av,
7451 &L4_MABX_B.If_Then_Else1_lo);
7452
7453 /* End of Outputs for SubSystem: '<S89>/If_Then_Else1' */
7454
7455 /* Outputs for Atomic SubSystem: '<S89>/If_Then_Else' */
7456
7457 /* Constant: '<S84>/EngRefTqLimHigh' */
7458 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_i,
7459 L4_MABX_P.EngRefTqLimHigh_Value,
7460 L4_MABX_B.If_Then_Else1_lo.Switch,
7461 &L4_MABX_B.If_Then_Else_ff);
7462
7463 /* End of Outputs for SubSystem: '<S89>/If_Then_Else' */
7464
7465 /* Sum: '<S84>/Subtract' incorporates:
7466 * Constant: '<S84>/FrictionTrqAtRefTrqSpeed'
7467 */
7468 L4_MABX_B.Subtract_j0 = L4_MABX_B.If_Then_Else_ff.Switch -
7469 L4_MABX_P.FrictionTrqAtRefTrqSpeed_Value;
7470
7471 /* Product: '<S84>/Divide' incorporates:
7472 * Constant: '<S84>/Constant1'
7473 */
7474 L4_MABX_B.Divide_h = L4_MABX_B.If_Then_Else1_l.Switch *
7475 L4_MABX_P.Constant1_Value_fg / L4_MABX_B.Subtract_j0;
7476
7477 /* RelationalOperator: '<S90>/Relational Operator1' incorporates:
7478 * Constant: '<S84>/APPTqPercentMax'
7479 */
7480 L4_MABX_B.RelationalOperator1_a = (L4_MABX_B.Divide_h >=
7481 L4_MABX_P.APPTqPercentMax_Value);
7482
7483 /* RelationalOperator: '<S90>/Relational Operator' incorporates:
7484 * Constant: '<S84>/APPTqPercentMin'
7485 */
7486 L4_MABX_B.RelationalOperator_n = (L4_MABX_B.Divide_h <=
7487 L4_MABX_P.APPTqPercentMin_Value);
7488
7489 /* Outputs for Atomic SubSystem: '<S90>/If_Then_Else1' */
7490
7491 /* Constant: '<S84>/APPTqPercentMin' */
7492 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_n,
7493 L4_MABX_P.APPTqPercentMin_Value, L4_MABX_B.Divide_h,
7494 &L4_MABX_B.If_Then_Else1_p);
7495
7496 /* End of Outputs for SubSystem: '<S90>/If_Then_Else1' */
7497
7498 /* Outputs for Atomic SubSystem: '<S90>/If_Then_Else' */
7499
7500 /* Constant: '<S84>/APPTqPercentMax' */
7501 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_a,
7502 L4_MABX_P.APPTqPercentMax_Value,
7503 L4_MABX_B.If_Then_Else1_p.Switch,
7504 &L4_MABX_B.If_Then_Else_iz);
7505
7506 /* End of Outputs for SubSystem: '<S90>/If_Then_Else' */
7507
7508 /* MultiPortSwitch: '<S76>/Autonomous Mode Switch' incorporates:
7509 * Constant: '<S76>/AUTONOMOUS_MODE_SELECTOR_APV'
7510 * Constant: '<S76>/GhostMode'
7511 */
7512 if (AUTONOMOUS_MODE_SELECTOR_APV == ENUM_AUTONOMOUS_MODE_T_AUTO) {
7513 AutonomousOutputEnabled = L4_MABX_B.AND_l;
7514 } else {
7515 AutonomousOutputEnabled = (L4_MABX_P.GhostMode_Value != 0);
7516 }
7517
7518 /* End of MultiPortSwitch: '<S76>/Autonomous Mode Switch' */
7519
7520 /* Switch: '<S76>/Switch' incorporates:
7521 * Constant: '<S76>/Failure'
7522 * Constant: '<S76>/Running'
7523 */
7524 if (EStop) {
7525 tmp_1 = L4_MABX_P.Running_Value;
7526 if (tmp_1 < 0) {
7527 tmp_1 = 0;
7528 }
7529
7530 MABX_Mode = (uint8_T)tmp_1;
7531 } else {
7532 tmp_1 = L4_MABX_P.Failure_Value;
7533 if (tmp_1 < 0) {
7534 tmp_1 = 0;
7535 }
7536
7537 MABX_Mode = (uint8_T)tmp_1;
7538 }
7539
7540 /* End of Switch: '<S76>/Switch' */
7541
7542 /* DataTypeConversion: '<S98>/Data Type Conversion2' */
7543 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o8_g5);
7544 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
7545 PositionFinalLimited = 0.0;
7546 } else {
7547 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
7548 }
7549
7550 L4_MABX_B.DataTypeConversion2_ew = (uint8_T)(PositionFinalLimited < 0.0 ?
7551 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
7552 (uint8_T)PositionFinalLimited);
7553
7554 /* End of DataTypeConversion: '<S98>/Data Type Conversion2' */
7555
7556 /* DataTypeConversion: '<S98>/Data Type Conversion' */
7557 L4_MABX_B.DataTypeConversion_lr = (ENUM_SWITCH_T)
7558 L4_MABX_B.DataTypeConversion2_ew;
7559
7560 /* DataTypeConversion: '<S98>/Data Type Conversion3' */
7561 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o4_o);
7562 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
7563 PositionFinalLimited = 0.0;
7564 } else {
7565 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
7566 }
7567
7568 L4_MABX_B.DataTypeConversion3_ps = (uint8_T)(PositionFinalLimited < 0.0 ?
7569 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
7570 (uint8_T)PositionFinalLimited);
7571
7572 /* End of DataTypeConversion: '<S98>/Data Type Conversion3' */
7573
7574 /* DataTypeConversion: '<S98>/Data Type Conversion1' */
7575 L4_MABX_B.DataTypeConversion1_lu = (ENUM_SWITCH_T)
7576 L4_MABX_B.DataTypeConversion3_ps;
7577
7578 /* RelationalOperator: '<S98>/Relational Operator3' incorporates:
7579 * Constant: '<S98>/CPV3'
7580 */
7581 L4_MABX_B.RelationalOperator3_c[0] = (L4_MABX_B.DataTypeConversion_lr ==
7582 L4_MABX_P.CPV3_Value_p);
7583 L4_MABX_B.RelationalOperator3_c[1] = (L4_MABX_B.DataTypeConversion1_lu ==
7584 L4_MABX_P.CPV3_Value_p);
7585
7586 /* Logic: '<S98>/Logical Operator4' */
7587 L4_MABX_B.LogicalOperator4_o = (L4_MABX_B.RelationalOperator3_c[0] &&
7588 L4_MABX_B.RelationalOperator3_c[1]);
7589
7590 /* Gain: '<S98>/Gain4' */
7591 L4_MABX_B.Primary_brake_circuit_pressure_ = L4_MABX_P.Gain4_Gain *
7592 L4_MABX_B.PressureP42;
7593
7594 /* Gain: '<S98>/Gain5' */
7595 L4_MABX_B.Secondary_brake_circuit_pressur = L4_MABX_P.Gain5_Gain *
7596 L4_MABX_B.PressureP4;
7597
7598 /* RelationalOperator: '<S98>/Relational Operator4' incorporates:
7599 * Constant: '<S98>/BRAKE_APPL_THRESHOLD_KPA_APV'
7600 */
7601 L4_MABX_B.RelationalOperator4[0] = (L4_MABX_B.Primary_brake_circuit_pressure_ >
7602 L4_MABX_P.BRAKE_APPL_THRESHOLD_KPA_APV_Va);
7603 L4_MABX_B.RelationalOperator4[1] = (L4_MABX_B.Secondary_brake_circuit_pressur >
7604 L4_MABX_P.BRAKE_APPL_THRESHOLD_KPA_APV_Va);
7605
7606 /* Logic: '<S98>/Logical Operator3' */
7607 L4_MABX_B.F_Service_brake_pressure_applie = (L4_MABX_B.RelationalOperator4[0] ||
7608 L4_MABX_B.RelationalOperator4[1]);
7609
7610 /* RelationalOperator: '<S98>/Relational Operator6' incorporates:
7611 * Constant: '<S98>/CPV4'
7612 */
7613 L4_MABX_B.RelationalOperator6[0] = (L4_MABX_B.DataTypeConversion_lr ==
7614 L4_MABX_P.CPV4_Value_n);
7615 L4_MABX_B.RelationalOperator6[1] = (L4_MABX_B.DataTypeConversion1_lu ==
7616 L4_MABX_P.CPV4_Value_n);
7617
7618 /* Logic: '<S98>/Logical Operator' */
7619 L4_MABX_B.F_Brake_sw_CAN = (L4_MABX_B.RelationalOperator6[0] ||
7620 L4_MABX_B.RelationalOperator6[1]);
7621
7622 /* Logic: '<S98>/Logical Operator5' */
7623 L4_MABX_B.LogicalOperator5_n = (L4_MABX_B.F_Service_brake_pressure_applie ||
7624 L4_MABX_B.F_Brake_sw_CAN);
7625
7626 /* Outputs for Atomic SubSystem: '<S98>/If_Then_Else' */
7627 L4_MABX_If_Then_Else_l(L4_MABX_B.LogicalOperator4_o,
7628 L4_MABX_B.F_Service_brake_pressure_applie, L4_MABX_B.LogicalOperator5_n,
7629 &L4_MABX_B.If_Then_Else_l);
7630
7631 /* End of Outputs for SubSystem: '<S98>/If_Then_Else' */
7632
7633 /* RelationalOperator: '<S102>/Relational Operator1' incorporates:
7634 * Constant: '<S102>/SPN904_ZERO_SPD_CPV'
7635 */
7636 L4_MABX_B.F_Vehicle_stopped = (L4_MABX_B.DataTypeConversion5_o <=
7637 L4_MABX_P.SPN904_ZERO_SPD_CPV_Value);
7638
7639 /* Sum: '<S99>/Add' */
7640 L4_MABX_B.Add_d = L4_MABX_B.Primary_brake_circuit_pressure_ +
7641 L4_MABX_B.Secondary_brake_circuit_pressur;
7642
7643 /* Gain: '<S99>/Gain' */
7644 L4_MABX_B.Gain_g = L4_MABX_P.Gain_Gain_g * L4_MABX_B.Add_d;
7645
7646 /* Outputs for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' incorporates:
7647 * EnablePort: '<S178>/Enable'
7648 */
7649 if (L4_MABX_DW.Determine_shift_interlock_brake) {
7650 /* Disable for Outport: '<S178>/Shift_interlock_brake_press_target_kpa' */
7651 L4_MABX_B.If_Then_Else_il.Switch = L4_MABX_P.Shift_interlock_brake_press_tar;
7652
7653 /* Disable for Outport: '<S178>/F_Shift_interlock_conditions_met' */
7654 L4_MABX_B.F_Shift_interlock_conditions_me =
7655 L4_MABX_P.F_Shift_interlock_conditions_me;
7656 L4_MABX_DW.Determine_shift_interlock_brake = false;
7657 }
7658
7659 /* End of Outputs for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
7660
7661 /* RelationalOperator: '<S200>/Compare' incorporates:
7662 * Constant: '<S200>/Constant'
7663 */
7664 L4_MABX_B.Compare_g = (L4_MABX_B.VSPD_TARGET_KPH_APV_g ==
7665 L4_MABX_P.Constant_Value_ol);
7666
7667 /* RelationalOperator: '<S103>/Relational Operator4' */
7668 L4_MABX_B.RelationalOperator4_l = (L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b >=
7669 L4_MABX_B.DataTypeConversion5_o);
7670
7671 /* Logic: '<S103>/Logical Operator3' */
7672 L4_MABX_B.F_Hold_brakes_at_zero_d = (L4_MABX_B.F_Brake_control_active &&
7673 L4_MABX_B.Compare_g && L4_MABX_B.RelationalOperator4_l);
7674
7675 /* Outputs for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' incorporates:
7676 * EnablePort: '<S177>/Enable'
7677 */
7678 if (L4_MABX_B.F_Hold_brakes_at_zero_d) {
7679 if (!L4_MABX_DW.Determine_brake_hold_pressure_t) {
7680 /* InitializeConditions for UnitDelay: '<S177>/Unit_Delay' */
7681 L4_MABX_DW.Unit_Delay_DSTATE_c = L4_MABX_P.Unit_Delay_InitialCondition_d;
7682
7683 /* InitializeConditions for UnitDelay: '<S181>/Unit_Delay' */
7684 L4_MABX_DW.Unit_Delay_DSTATE_or = L4_MABX_P.Unit_Delay_InitialCondition_fy;
7685
7686 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay2' */
7687 L4_MABX_DW.FixPtUnitDelay2_DSTATE_je =
7688 L4_MABX_P.FixPtUnitDelay2_InitialCondit_e;
7689
7690 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay1' */
7691 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b =
7692 L4_MABX_P.FixPtUnitDelay1_InitialCondit_p;
7693
7694 /* InitializeConditions for UnitDelay: '<S182>/Unit_Delay' */
7695 L4_MABX_DW.Unit_Delay_DSTATE_oj = L4_MABX_P.Unit_Delay_InitialCondition_k;
7696 L4_MABX_DW.Determine_brake_hold_pressure_t = true;
7697 }
7698
7699 /* Logic: '<S177>/Logical Operator2' */
7700 L4_MABX_B.F_Brake_hold_conditions_met = (L4_MABX_B.If_Then_Else_l.Switch &&
7701 L4_MABX_B.F_Vehicle_stopped);
7702
7703 /* UnitDelay: '<S177>/Unit_Delay' */
7704 L4_MABX_B.Unit_Delay_a = L4_MABX_DW.Unit_Delay_DSTATE_c;
7705
7706 /* UnitDelay: '<S181>/Unit_Delay' */
7707 L4_MABX_B.Unit_Delay_h0 = L4_MABX_DW.Unit_Delay_DSTATE_or;
7708
7709 /* Logic: '<S181>/Logical Operator1' incorporates:
7710 * Constant: '<S177>/CPV1'
7711 */
7712 L4_MABX_B.LogicalOperator1_ou = (L4_MABX_P.CPV1_Value_p ||
7713 L4_MABX_B.Unit_Delay_h0);
7714
7715 /* Outputs for Atomic SubSystem: '<S177>/If_Then_Else1' */
7716
7717 /* Constant: '<S177>/CPV' */
7718 L4_MABX_If_Then_Else_g(L4_MABX_B.F_Brake_hold_conditions_met,
7719 L4_MABX_B.Unit_Delay_a, L4_MABX_P.CPV_Value_k, &L4_MABX_B.If_Then_Else1_mf);
7720
7721 /* End of Outputs for SubSystem: '<S177>/If_Then_Else1' */
7722
7723 /* UnitDelay: '<S185>/FixPt Unit Delay2' */
7724 L4_MABX_B.FixPtUnitDelay2_do = L4_MABX_DW.FixPtUnitDelay2_DSTATE_je;
7725
7726 /* UnitDelay: '<S185>/FixPt Unit Delay1' */
7727 L4_MABX_B.Xold_b = L4_MABX_DW.FixPtUnitDelay1_DSTATE_b;
7728
7729 /* Switch: '<S185>/Init' */
7730 if (L4_MABX_B.FixPtUnitDelay2_do != 0) {
7731 L4_MABX_B.Init_k = L4_MABX_B.If_Then_Else1_mf.Switch;
7732 } else {
7733 L4_MABX_B.Init_k = L4_MABX_B.Xold_b;
7734 }
7735
7736 /* End of Switch: '<S185>/Init' */
7737
7738 /* Abs: '<S181>/Abs' incorporates:
7739 * Constant: '<S177>/BRAKE_PRESS_TARGET_S LEW_INC_APV'
7740 */
7741 L4_MABX_B.Abs_b = fabs(L4_MABX_P.BRAKE_PRESS_TARGET_SLEW_INC_APV);
7742
7743 /* DigitalClock: '<S182>/Digital Clock' */
7744 L4_MABX_B.DigitalClock_c = L4_MABX_M->Timing.t[0];
7745
7746 /* UnitDelay: '<S182>/Unit_Delay' */
7747 L4_MABX_B.Unit_Delay_ka = L4_MABX_DW.Unit_Delay_DSTATE_oj;
7748
7749 /* Sum: '<S182>/Subtract' */
7750 L4_MABX_B.Subtract_ko = L4_MABX_B.DigitalClock_c - L4_MABX_B.Unit_Delay_ka;
7751
7752 /* Product: '<S181>/Product1' */
7753 L4_MABX_B.Product1_f = L4_MABX_B.Abs_b * L4_MABX_B.Subtract_ko;
7754
7755 /* Sum: '<S181>/Add1' */
7756 L4_MABX_B.Add1_cj = L4_MABX_B.Init_k + L4_MABX_B.Product1_f;
7757
7758 /* MinMax: '<S181>/MinMax2' */
7759 DeltaTime = L4_MABX_B.If_Then_Else1_mf.Switch;
7760 PositionFinalLimited = L4_MABX_B.Add1_cj;
7761 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7762 PositionFinalLimited = DeltaTime;
7763 }
7764
7765 L4_MABX_B.MinMax2_c2 = PositionFinalLimited;
7766
7767 /* End of MinMax: '<S181>/MinMax2' */
7768
7769 /* Abs: '<S181>/Abs1' incorporates:
7770 * Constant: '<S177>/BRAKE_PRESS_TARGET_SLEW_DEC_APV'
7771 */
7772 L4_MABX_B.Abs1_ar = fabs(L4_MABX_P.BRAKE_PRESS_TARGET_SLEW_DEC_APV);
7773
7774 /* Product: '<S181>/Product2' */
7775 L4_MABX_B.Product2_c3 = L4_MABX_B.Subtract_ko * L4_MABX_B.Abs1_ar;
7776
7777 /* Sum: '<S181>/Subtract1' */
7778 L4_MABX_B.Subtract1_ev = L4_MABX_B.Init_k - L4_MABX_B.Product2_c3;
7779
7780 /* MinMax: '<S181>/MinMax1' */
7781 DeltaTime = L4_MABX_B.MinMax2_c2;
7782 PositionFinalLimited = L4_MABX_B.Subtract1_ev;
7783 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7784 PositionFinalLimited = DeltaTime;
7785 }
7786
7787 L4_MABX_B.MinMax1_jw = PositionFinalLimited;
7788
7789 /* End of MinMax: '<S181>/MinMax1' */
7790
7791 /* Outputs for Atomic SubSystem: '<S181>/If_Then_Else' */
7792 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_ou, L4_MABX_B.Gain_g,
7793 L4_MABX_B.MinMax1_jw, &L4_MABX_B.If_Then_Else_nz);
7794
7795 /* End of Outputs for SubSystem: '<S181>/If_Then_Else' */
7796
7797 /* Outputs for Atomic SubSystem: '<S177>/If_Then_Else' */
7798 L4_MABX_If_Then_Else_g(L4_MABX_B.F_Brake_hold_conditions_met,
7799 L4_MABX_B.Unit_Delay_a, L4_MABX_B.If_Then_Else_nz.Switch,
7800 &L4_MABX_B.If_Then_Else_gj);
7801
7802 /* End of Outputs for SubSystem: '<S177>/If_Then_Else' */
7803
7804 /* RelationalOperator: '<S183>/min_relop' incorporates:
7805 * Constant: '<S177>/BRAKE_PRESS_TARGET_S LEW_INC_APV'
7806 * Constant: '<S183>/min_val'
7807 */
7808 L4_MABX_B.min_relop_i = (L4_MABX_P.CheckStaticLowerBound_min_i <=
7809 L4_MABX_P.BRAKE_PRESS_TARGET_SLEW_INC_APV);
7810
7811 /* Assertion: '<S183>/Assertion' */
7812 utAssert(L4_MABX_B.min_relop_i);
7813 } else {
7814 if (L4_MABX_DW.Determine_brake_hold_pressure_t) {
7815 /* Disable for Outport: '<S177>/Brake_hold_brake_press_target_kpa' */
7816 L4_MABX_B.If_Then_Else_gj.Switch =
7817 L4_MABX_P.Brake_hold_brake_press_target_k;
7818
7819 /* Disable for Outport: '<S177>/F_Brake_hold_conditions_met' */
7820 L4_MABX_B.F_Brake_hold_conditions_met =
7821 L4_MABX_P.F_Brake_hold_conditions_met_Y0;
7822 L4_MABX_DW.Determine_brake_hold_pressure_t = false;
7823 }
7824 }
7825
7826 /* End of Outputs for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
7827
7828 /* MinMax: '<S99>/MinMax' */
7829 DeltaTime = L4_MABX_B.If_Then_Else_il.Switch;
7830 PositionFinalLimited = L4_MABX_B.If_Then_Else_gj.Switch;
7831 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7832 PositionFinalLimited = DeltaTime;
7833 }
7834
7835 L4_MABX_B.Brake_pressure_target_kpa = PositionFinalLimited;
7836
7837 /* End of MinMax: '<S99>/MinMax' */
7838
7839 /* Gain: '<S98>/Gain1' */
7840 L4_MABX_B.Bendix_2C2_Primary_brake_circui = L4_MABX_P.Gain1_Gain *
7841 L4_MABX_B.PressureP21;
7842
7843 /* Gain: '<S98>/Gain2' */
7844 L4_MABX_B.Bendix_2C2_Secondary_brake_circ = L4_MABX_P.Gain2_Gain *
7845 L4_MABX_B.PressureP22;
7846
7847 /* Sum: '<S100>/Add' */
7848 L4_MABX_B.Add_n = L4_MABX_B.Primary_brake_circuit_pressure_ +
7849 L4_MABX_B.Secondary_brake_circuit_pressur;
7850
7851 /* Gain: '<S100>/Gain' */
7852 L4_MABX_B.brake_system_avg_appl_pressure_ = L4_MABX_P.Gain_Gain_i *
7853 L4_MABX_B.Add_n;
7854
7855 /* Gain: '<S98>/Gain3' */
7856 L4_MABX_B.Primary_brake_circuit_pressur_n = L4_MABX_P.Gain3_Gain *
7857 L4_MABX_B.PressureP1;
7858
7859 /* Product: '<S100>/Divide2' */
7860 L4_MABX_B.Divide2 = L4_MABX_B.brake_system_avg_appl_pressure_ /
7861 L4_MABX_B.Primary_brake_circuit_pressur_n;
7862
7863 /* Gain: '<S100>/Gain5' */
7864 L4_MABX_B.Gain5 = L4_MABX_P.Gain5_Gain_l * L4_MABX_B.Divide2;
7865
7866 /* Saturate: '<S100>/Saturation3' */
7867 DeltaTime = L4_MABX_B.Gain5;
7868 Time56 = L4_MABX_P.Saturation3_LowerSat;
7869 PositionFinalLimited = L4_MABX_P.Saturation3_UpperSat;
7870 if (DeltaTime > PositionFinalLimited) {
7871 L4_MABX_B.Brake_appl_percent = PositionFinalLimited;
7872 } else if (DeltaTime < Time56) {
7873 L4_MABX_B.Brake_appl_percent = Time56;
7874 } else {
7875 L4_MABX_B.Brake_appl_percent = DeltaTime;
7876 }
7877
7878 /* End of Saturate: '<S100>/Saturation3' */
7879
7880 /* Outputs for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' incorporates:
7881 * EnablePort: '<S96>/Enable'
7882 */
7883 if (L4_MABX_B.F_Hold_brakes_at_zero_d) {
7884 if (!L4_MABX_DW.Bendix_2C2_brake_application_pr) {
7885 /* InitializeConditions for UnitDelay: '<S105>/Unit_Delay' */
7886 L4_MABX_DW.Unit_Delay_DSTATE_dc = L4_MABX_P.Unit_Delay_InitialCondition;
7887
7888 /* InitializeConditions for UnitDelay: '<S109>/Unit_Delay' */
7889 L4_MABX_DW.Unit_Delay_DSTATE_omj =
7890 L4_MABX_P.Unit_Delay_InitialCondition_lt;
7891
7892 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay1' */
7893 L4_MABX_DW.Unit_Delay1_DSTATE_b = L4_MABX_P.Unit_Delay1_InitialCondition;
7894
7895 /* InitializeConditions for UnitDelay: '<S130>/Unit_Delay' */
7896 L4_MABX_DW.Unit_Delay_DSTATE_h4 = L4_MABX_P.Unit_Delay_InitialCondition_og;
7897
7898 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay2' */
7899 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm =
7900 L4_MABX_P.FixPtUnitDelay2_InitialConditio;
7901
7902 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay1' */
7903 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1 =
7904 L4_MABX_P.FixPtUnitDelay1_InitialConditio;
7905
7906 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay2' */
7907 L4_MABX_DW.Unit_Delay2_DSTATE_dy = L4_MABX_P.Unit_Delay2_InitialCondition;
7908
7909 /* InitializeConditions for UnitDelay: '<S104>/Unit_Delay' */
7910 L4_MABX_DW.Unit_Delay_DSTATE_i = L4_MABX_P.Unit_Delay_InitialCondition_p;
7911 L4_MABX_DW.Bendix_2C2_brake_application_pr = true;
7912 }
7913
7914 /* Sum: '<S96>/Add' */
7915 L4_MABX_B.Add_my = L4_MABX_B.Bendix_2C2_Primary_brake_circui +
7916 L4_MABX_B.Bendix_2C2_Secondary_brake_circ;
7917
7918 /* Gain: '<S96>/Gain' */
7919 L4_MABX_B.Gain_i = L4_MABX_P.Gain_Gain * L4_MABX_B.Add_my;
7920
7921 /* Abs: '<S106>/Abs' incorporates:
7922 * Constant: '<S96>/BRK_PRESS_DEM_KI_APV'
7923 */
7924 L4_MABX_B.Abs_k4 = fabs(L4_MABX_P.BRK_PRESS_DEM_KI_APV_Value);
7925
7926 /* Abs: '<S106>/Abs1' incorporates:
7927 * Constant: '<S96>/BRK_PRESS_DEM_KD_APV'
7928 */
7929 L4_MABX_B.Abs1_ap = fabs(L4_MABX_P.BRK_PRESS_DEM_KD_APV_Value);
7930
7931 /* DigitalClock: '<S105>/Digital Clock' */
7932 L4_MABX_B.DigitalClock_j = L4_MABX_M->Timing.t[0];
7933
7934 /* UnitDelay: '<S105>/Unit_Delay' */
7935 L4_MABX_B.Unit_Delay_jc = L4_MABX_DW.Unit_Delay_DSTATE_dc;
7936
7937 /* Sum: '<S105>/Subtract' */
7938 L4_MABX_B.Subtract_jr = L4_MABX_B.DigitalClock_j - L4_MABX_B.Unit_Delay_jc;
7939
7940 /* UnitDelay: '<S109>/Unit_Delay' */
7941 L4_MABX_B.Unit_Delay_nm = L4_MABX_DW.Unit_Delay_DSTATE_omj;
7942
7943 /* Logic: '<S109>/Logical Operator1' incorporates:
7944 * Constant: '<S96>/CPV2'
7945 */
7946 L4_MABX_B.LogicalOperator1_ax = (L4_MABX_B.Unit_Delay_nm ||
7947 L4_MABX_P.CPV2_Value_m);
7948
7949 /* UnitDelay: '<S129>/Unit_Delay1' */
7950 L4_MABX_B.Unit_Delay1_iq = L4_MABX_DW.Unit_Delay1_DSTATE_b;
7951
7952 /* Logic: '<S129>/Logical Operator' */
7953 L4_MABX_B.LogicalOperator_m = (L4_MABX_B.LogicalOperator1_ax ||
7954 L4_MABX_B.Unit_Delay1_iq);
7955
7956 /* UnitDelay: '<S130>/Unit_Delay' */
7957 L4_MABX_B.Unit_Delay_nl = L4_MABX_DW.Unit_Delay_DSTATE_h4;
7958
7959 /* Logic: '<S130>/Logical Operator1' */
7960 L4_MABX_B.LogicalOperator1_mk = (L4_MABX_B.LogicalOperator1_ax ||
7961 L4_MABX_B.Unit_Delay_nl);
7962
7963 /* UnitDelay: '<S134>/FixPt Unit Delay2' */
7964 L4_MABX_B.FixPtUnitDelay2_op = L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm;
7965
7966 /* UnitDelay: '<S134>/FixPt Unit Delay1' */
7967 L4_MABX_B.Xold_g3 = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1;
7968
7969 /* Switch: '<S134>/Init' */
7970 if (L4_MABX_B.FixPtUnitDelay2_op != 0) {
7971 L4_MABX_B.Init_hw = L4_MABX_B.Brake_pressure_target_kpa;
7972 } else {
7973 L4_MABX_B.Init_hw = L4_MABX_B.Xold_g3;
7974 }
7975
7976 /* End of Switch: '<S134>/Init' */
7977
7978 /* Abs: '<S130>/Abs' incorporates:
7979 * Constant: '<S96>/CPV4'
7980 */
7981 L4_MABX_B.Abs_l = fabs(L4_MABX_P.CPV4_Value);
7982
7983 /* Product: '<S130>/Product1' */
7984 L4_MABX_B.Product1_bi = L4_MABX_B.Abs_l * L4_MABX_B.Subtract_jr;
7985
7986 /* Sum: '<S130>/Add1' */
7987 L4_MABX_B.Add1_hu = L4_MABX_B.Init_hw + L4_MABX_B.Product1_bi;
7988
7989 /* MinMax: '<S130>/MinMax2' */
7990 DeltaTime = L4_MABX_B.Brake_pressure_target_kpa;
7991 PositionFinalLimited = L4_MABX_B.Add1_hu;
7992 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
7993 PositionFinalLimited = DeltaTime;
7994 }
7995
7996 L4_MABX_B.MinMax2_b = PositionFinalLimited;
7997
7998 /* End of MinMax: '<S130>/MinMax2' */
7999
8000 /* Abs: '<S130>/Abs1' incorporates:
8001 * Constant: '<S96>/CPV5'
8002 */
8003 L4_MABX_B.Abs1_d1 = fabs(L4_MABX_P.CPV5_Value);
8004
8005 /* Product: '<S130>/Product2' */
8006 L4_MABX_B.Product2_d = L4_MABX_B.Subtract_jr * L4_MABX_B.Abs1_d1;
8007
8008 /* Sum: '<S130>/Subtract1' */
8009 L4_MABX_B.Subtract1_a = L4_MABX_B.Init_hw - L4_MABX_B.Product2_d;
8010
8011 /* MinMax: '<S130>/MinMax1' */
8012 DeltaTime = L4_MABX_B.MinMax2_b;
8013 PositionFinalLimited = L4_MABX_B.Subtract1_a;
8014 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8015 PositionFinalLimited = DeltaTime;
8016 }
8017
8018 L4_MABX_B.MinMax1_ps = PositionFinalLimited;
8019
8020 /* End of MinMax: '<S130>/MinMax1' */
8021
8022 /* Outputs for Atomic SubSystem: '<S130>/If_Then_Else' */
8023 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_mk, L4_MABX_B.Gain_i,
8024 L4_MABX_B.MinMax1_ps, &L4_MABX_B.If_Then_Else_bg);
8025
8026 /* End of Outputs for SubSystem: '<S130>/If_Then_Else' */
8027
8028 /* Sum: '<S107>/Subtract' */
8029 L4_MABX_B.Subtract_n = L4_MABX_B.If_Then_Else_bg.Switch - L4_MABX_B.Gain_i;
8030
8031 /* MinMax: '<S129>/MinMax1' incorporates:
8032 * Constant: '<S96>/BRK_PRESS_DEM_T_FILT_CTRL_ERROR_APV'
8033 */
8034 DeltaTime = L4_MABX_B.Subtract_jr;
8035 PositionFinalLimited = L4_MABX_P.BRK_PRESS_DEM_T_FILT_CTRL_ERROR;
8036 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8037 PositionFinalLimited = DeltaTime;
8038 }
8039
8040 L4_MABX_B.MinMax1_h1 = PositionFinalLimited;
8041
8042 /* End of MinMax: '<S129>/MinMax1' */
8043
8044 /* Saturate: '<S129>/Saturation' */
8045 DeltaTime = L4_MABX_B.MinMax1_h1;
8046 Time56 = L4_MABX_P.Saturation_LowerSat;
8047 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat;
8048 if (DeltaTime > PositionFinalLimited) {
8049 L4_MABX_B.Saturation_p = PositionFinalLimited;
8050 } else if (DeltaTime < Time56) {
8051 L4_MABX_B.Saturation_p = Time56;
8052 } else {
8053 L4_MABX_B.Saturation_p = DeltaTime;
8054 }
8055
8056 /* End of Saturate: '<S129>/Saturation' */
8057
8058 /* Product: '<S129>/Divide' */
8059 L4_MABX_B.Divide_l = L4_MABX_B.Subtract_jr / L4_MABX_B.Saturation_p;
8060
8061 /* Product: '<S129>/Product2' */
8062 L4_MABX_B.Product2_kj = L4_MABX_B.Subtract_n * L4_MABX_B.Divide_l;
8063
8064 /* Sum: '<S129>/Subtract1' incorporates:
8065 * Constant: '<S129>/Constant1'
8066 */
8067 L4_MABX_B.Subtract1_pm = L4_MABX_P.Constant1_Value - L4_MABX_B.Divide_l;
8068
8069 /* UnitDelay: '<S129>/Unit_Delay2' */
8070 L4_MABX_B.Unit_Delay2_d = L4_MABX_DW.Unit_Delay2_DSTATE_dy;
8071
8072 /* Product: '<S129>/Product1' */
8073 L4_MABX_B.Product1_c3 = L4_MABX_B.Subtract1_pm * L4_MABX_B.Unit_Delay2_d;
8074
8075 /* Sum: '<S129>/Add1' */
8076 L4_MABX_B.Add1_i1 = L4_MABX_B.Product2_kj + L4_MABX_B.Product1_c3;
8077
8078 /* Outputs for Atomic SubSystem: '<S129>/If_Then_Else' */
8079 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_m, L4_MABX_B.Subtract_n,
8080 L4_MABX_B.Add1_i1, &L4_MABX_B.If_Then_Else_ly);
8081
8082 /* End of Outputs for SubSystem: '<S129>/If_Then_Else' */
8083
8084 /* RelationalOperator: '<S114>/Compare' incorporates:
8085 * Constant: '<S114>/Constant'
8086 */
8087 L4_MABX_B.Compare_aa = (L4_MABX_B.Abs1_ap >
8088 L4_MABX_P.CompareToConstant1_const);
8089
8090 /* Outputs for Enabled SubSystem: '<S106>/Calculate_D_term' */
8091
8092 /* Constant: '<S96>/BRK_PRESS_DEM_KD_APV' incorporates:
8093 * Constant: '<S96>/BRK_PRESS_DEM_T_FILT_D_APV'
8094 */
8095 L4_MABX_Calculate_D_term(L4_MABX_B.Compare_aa,
8096 L4_MABX_P.BRK_PRESS_DEM_KD_APV_Value, L4_MABX_B.Subtract_jr,
8097 L4_MABX_B.LogicalOperator1_ax, L4_MABX_B.If_Then_Else_ly.Switch,
8098 L4_MABX_P.BRK_PRESS_DEM_T_FILT_D_APV_Valu, &L4_MABX_B.Calculate_D_term,
8099 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
8100
8101 /* End of Outputs for SubSystem: '<S106>/Calculate_D_term' */
8102
8103 /* Product: '<S112>/Product' incorporates:
8104 * Constant: '<S96>/BRK_PRESS_DEM_KP_APV'
8105 */
8106 L4_MABX_B.Product_iq = L4_MABX_P.BRK_PRESS_DEM_KP_APV_Value *
8107 L4_MABX_B.If_Then_Else_ly.Switch;
8108
8109 /* UnitDelay: '<S104>/Unit_Delay' */
8110 L4_MABX_B.Unit_Delay_ja = L4_MABX_DW.Unit_Delay_DSTATE_i;
8111
8112 /* RelationalOperator: '<S113>/Compare' incorporates:
8113 * Constant: '<S113>/Constant'
8114 */
8115 L4_MABX_B.Compare_jrp = (L4_MABX_B.Abs_k4 >
8116 L4_MABX_P.CompareToConstant_const);
8117
8118 /* Outputs for Enabled SubSystem: '<S106>/Calculate_I_term' */
8119
8120 /* Constant: '<S96>/BRK_PRESS_DEM_KI_APV' incorporates:
8121 * Constant: '<S96>/BRK_PRESS_DEM_AW_COND_INT_APV'
8122 * Constant: '<S96>/BRK_PRESS_DEM_AW_HYSTERESIS_APV'
8123 * Constant: '<S96>/CPV1'
8124 * Constant: '<S96>/CPV3'
8125 */
8126 L4_MABX_Calculate_I_term(L4_MABX_B.Compare_jrp, L4_MABX_B.Product_iq,
8127 L4_MABX_P.BRK_PRESS_DEM_KI_APV_Value, L4_MABX_B.Brake_appl_percent,
8128 L4_MABX_B.If_Then_Else_ly.Switch, L4_MABX_B.LogicalOperator1_ax,
8129 L4_MABX_B.Subtract_jr, L4_MABX_P.CPV3_Value,
8130 L4_MABX_P.BRK_PRESS_DEM_AW_COND_INT_APV_V,
8131 L4_MABX_P.BRK_PRESS_DEM_AW_HYSTERESIS_APV, L4_MABX_P.CPV1_Value_g,
8132 L4_MABX_B.Unit_Delay_ja, &L4_MABX_B.Calculate_I_term,
8133 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
8134
8135 /* End of Outputs for SubSystem: '<S106>/Calculate_I_term' */
8136
8137 /* RelationalOperator: '<S132>/min_relop' incorporates:
8138 * Constant: '<S132>/min_val'
8139 * Constant: '<S96>/CPV4'
8140 */
8141 L4_MABX_B.min_relop_ph = (L4_MABX_P.CheckStaticLowerBound_min <=
8142 L4_MABX_P.CPV4_Value);
8143
8144 /* Assertion: '<S132>/Assertion' */
8145 utAssert(L4_MABX_B.min_relop_ph);
8146
8147 /* Sum: '<S108>/Add' incorporates:
8148 * Constant: '<S96>/CPV3'
8149 */
8150 L4_MABX_B.Add_e = ((L4_MABX_B.Product_iq +
8151 L4_MABX_B.Calculate_I_term.If_Then_Else.Switch) +
8152 L4_MABX_B.Calculate_D_term.Subtract) +
8153 L4_MABX_P.CPV3_Value;
8154
8155 /* RelationalOperator: '<S135>/Relational Operator1' incorporates:
8156 * Constant: '<S96>/CPV6'
8157 */
8158 L4_MABX_B.RelationalOperator1_gi = (L4_MABX_B.Add_e >= L4_MABX_P.CPV6_Value);
8159
8160 /* RelationalOperator: '<S135>/Relational Operator' incorporates:
8161 * Constant: '<S96>/CPV'
8162 */
8163 L4_MABX_B.RelationalOperator_b = (L4_MABX_B.Add_e <= L4_MABX_P.CPV_Value);
8164
8165 /* Outputs for Atomic SubSystem: '<S135>/If_Then_Else1' */
8166
8167 /* Constant: '<S96>/CPV' */
8168 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_b, L4_MABX_P.CPV_Value,
8169 L4_MABX_B.Add_e, &L4_MABX_B.If_Then_Else1_bq);
8170
8171 /* End of Outputs for SubSystem: '<S135>/If_Then_Else1' */
8172
8173 /* Outputs for Atomic SubSystem: '<S135>/If_Then_Else' */
8174
8175 /* Constant: '<S96>/CPV6' */
8176 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_gi, L4_MABX_P.CPV6_Value,
8177 L4_MABX_B.If_Then_Else1_bq.Switch,
8178 &L4_MABX_B.If_Then_Else_nj);
8179
8180 /* End of Outputs for SubSystem: '<S135>/If_Then_Else' */
8181 } else {
8182 if (L4_MABX_DW.Bendix_2C2_brake_application_pr) {
8183 /* Disable for Enabled SubSystem: '<S106>/Calculate_D_term' */
8184 if (L4_MABX_DW.Calculate_D_term.Calculate_D_term_MODE) {
8185 L4_Calculate_D_term_Disable(&L4_MABX_B.Calculate_D_term,
8186 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
8187 }
8188
8189 /* End of Disable for SubSystem: '<S106>/Calculate_D_term' */
8190
8191 /* Disable for Enabled SubSystem: '<S106>/Calculate_I_term' */
8192 if (L4_MABX_DW.Calculate_I_term.Calculate_I_term_MODE) {
8193 L4_Calculate_I_term_Disable(&L4_MABX_B.Calculate_I_term,
8194 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
8195 }
8196
8197 /* End of Disable for SubSystem: '<S106>/Calculate_I_term' */
8198
8199 /* Disable for Outport: '<S96>/PID_output' */
8200 L4_MABX_B.If_Then_Else_nj.Switch = L4_MABX_P.PID_output_Y0;
8201 L4_MABX_DW.Bendix_2C2_brake_application_pr = false;
8202 }
8203 }
8204
8205 /* End of Outputs for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
8206
8207 /* RelationalOperator: '<S374>/Compare' incorporates:
8208 * Constant: '<S374>/Constant'
8209 */
8210 L4_MABX_B.Compare_ey = (L4_MABX_B.SFunction1_o4_gk ==
8211 L4_MABX_P.CompareToConstant9_const);
8212
8213 /* RelationalOperator: '<S371>/Compare' incorporates:
8214 * Constant: '<S371>/Constant'
8215 */
8216 L4_MABX_B.Compare_j = (L4_MABX_B.SFunction1_o5_a ==
8217 L4_MABX_P.CompareToConstant10_const);
8218
8219 /* RelationalOperator: '<S372>/Compare' incorporates:
8220 * Constant: '<S372>/Constant'
8221 */
8222 L4_MABX_B.Compare_hc = (L4_MABX_B.SFunction1_o6_g ==
8223 L4_MABX_P.CompareToConstant11_const);
8224
8225 /* RelationalOperator: '<S373>/Compare' incorporates:
8226 * Constant: '<S373>/Constant'
8227 */
8228 L4_MABX_B.Compare_bp = (L4_MABX_B.SFunction1_o7_g ==
8229 L4_MABX_P.CompareToConstant12_const);
8230
8231 /* Logic: '<S334>/Logical Operator2' */
8232 L4_MABX_B.LogicalOperator2_f = (L4_MABX_B.Compare_ey || L4_MABX_B.Compare_j ||
8233 L4_MABX_B.Compare_hc || L4_MABX_B.Compare_bp);
8234
8235 /* UnitDelay: '<S376>/Unit_Delay' */
8236 L4_MABX_B.Unit_Delay_ot = L4_MABX_DW.Unit_Delay_DSTATE_cx;
8237
8238 /* Logic: '<S376>/Logical Operator1' */
8239 L4_MABX_B.LogicalOperator1_j = !L4_MABX_B.Unit_Delay_ot;
8240
8241 /* Logic: '<S376>/Logical Operator' */
8242 L4_MABX_B.LogicalOperator_fl = (L4_MABX_B.LogicalOperator2_f &&
8243 L4_MABX_B.LogicalOperator1_j);
8244
8245 /* UnitDelay: '<S377>/Unit_Delay' */
8246 L4_MABX_B.Unit_Delay_jz = L4_MABX_DW.Unit_Delay_DSTATE_d0;
8247
8248 /* Logic: '<S377>/Logical Operator1' */
8249 L4_MABX_B.LogicalOperator1_a = (L4_MABX_B.LogicalOperator_fl ||
8250 L4_MABX_B.Unit_Delay_jz);
8251
8252 /* UnitDelay: '<S334>/Unit_Delay' */
8253 L4_MABX_B.Unit_Delay_k = L4_MABX_DW.Unit_Delay_DSTATE_e;
8254
8255 /* MinMax: '<S334>/MinMax' */
8256 DeltaTime = L4_MABX_B.Unit_Delay_k;
8257 PositionFinalLimited = L4_MABX_B.SFunction1_o1_in;
8258 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8259 PositionFinalLimited = DeltaTime;
8260 }
8261
8262 L4_MABX_B.MinMax_d = PositionFinalLimited;
8263
8264 /* End of MinMax: '<S334>/MinMax' */
8265
8266 /* Outputs for Atomic SubSystem: '<S334>/If_Then_Else4' */
8267
8268 /* Constant: '<S334>/STABILITY_ACTIVE_VSPD_TARGET_APV' incorporates:
8269 * Constant: '<S334>/Constant4'
8270 */
8271 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator2_f,
8272 L4_MABX_P.STABILITY_ACTIVE_VSPD_TARGET_AP,
8273 L4_MABX_P.Constant4_Value_n, &L4_MABX_B.If_Then_Else4_h);
8274
8275 /* End of Outputs for SubSystem: '<S334>/If_Then_Else4' */
8276
8277 /* UnitDelay: '<S381>/FixPt Unit Delay2' */
8278 L4_MABX_B.FixPtUnitDelay2_b = L4_MABX_DW.FixPtUnitDelay2_DSTATE_a;
8279
8280 /* UnitDelay: '<S381>/FixPt Unit Delay1' */
8281 L4_MABX_B.Xold_h = L4_MABX_DW.FixPtUnitDelay1_DSTATE_h;
8282
8283 /* Switch: '<S381>/Init' */
8284 if (L4_MABX_B.FixPtUnitDelay2_b != 0) {
8285 L4_MABX_B.Init_ip = L4_MABX_B.If_Then_Else4_h.Switch;
8286 } else {
8287 L4_MABX_B.Init_ip = L4_MABX_B.Xold_h;
8288 }
8289
8290 /* End of Switch: '<S381>/Init' */
8291
8292 /* Abs: '<S377>/Abs' incorporates:
8293 * Constant: '<S334>/STABILITY_CTRL_SLEW_INC_APV'
8294 */
8295 L4_MABX_B.Abs_e = fabs(L4_MABX_P.STABILITY_CTRL_SLEW_INC_APV_Val);
8296
8297 /* DigitalClock: '<S378>/Digital Clock' */
8298 L4_MABX_B.DigitalClock = L4_MABX_M->Timing.t[0];
8299
8300 /* UnitDelay: '<S378>/Unit_Delay' */
8301 L4_MABX_B.Unit_Delay_d = L4_MABX_DW.Unit_Delay_DSTATE_m;
8302
8303 /* Sum: '<S378>/Subtract' */
8304 L4_MABX_B.Subtract_l = L4_MABX_B.DigitalClock - L4_MABX_B.Unit_Delay_d;
8305
8306 /* Product: '<S377>/Product1' */
8307 L4_MABX_B.Product1_hp = L4_MABX_B.Abs_e * L4_MABX_B.Subtract_l;
8308
8309 /* Sum: '<S377>/Add1' */
8310 L4_MABX_B.Add1_n = L4_MABX_B.Init_ip + L4_MABX_B.Product1_hp;
8311
8312 /* MinMax: '<S377>/MinMax2' */
8313 DeltaTime = L4_MABX_B.If_Then_Else4_h.Switch;
8314 PositionFinalLimited = L4_MABX_B.Add1_n;
8315 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8316 PositionFinalLimited = DeltaTime;
8317 }
8318
8319 L4_MABX_B.MinMax2_g = PositionFinalLimited;
8320
8321 /* End of MinMax: '<S377>/MinMax2' */
8322
8323 /* Abs: '<S377>/Abs1' incorporates:
8324 * Constant: '<S334>/STABILITY_CTRL_SLEW_DEC_APV'
8325 */
8326 L4_MABX_B.Abs1_h = fabs(L4_MABX_P.STABILITY_CTRL_SLEW_DEC_APV_Val);
8327
8328 /* Product: '<S377>/Product2' */
8329 L4_MABX_B.Product2_c = L4_MABX_B.Subtract_l * L4_MABX_B.Abs1_h;
8330
8331 /* Sum: '<S377>/Subtract1' */
8332 L4_MABX_B.Subtract1_n = L4_MABX_B.Init_ip - L4_MABX_B.Product2_c;
8333
8334 /* MinMax: '<S377>/MinMax1' */
8335 DeltaTime = L4_MABX_B.MinMax2_g;
8336 PositionFinalLimited = L4_MABX_B.Subtract1_n;
8337 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8338 PositionFinalLimited = DeltaTime;
8339 }
8340
8341 L4_MABX_B.MinMax1_h = PositionFinalLimited;
8342
8343 /* End of MinMax: '<S377>/MinMax1' */
8344
8345 /* Outputs for Atomic SubSystem: '<S377>/If_Then_Else' */
8346 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_a, L4_MABX_B.MinMax_d,
8347 L4_MABX_B.MinMax1_h, &L4_MABX_B.If_Then_Else_m4);
8348
8349 /* End of Outputs for SubSystem: '<S377>/If_Then_Else' */
8350
8351 /* RelationalOperator: '<S362>/Compare' incorporates:
8352 * Constant: '<S362>/Constant'
8353 */
8354 L4_MABX_B.Compare_d3 = (L4_MABX_B.ACCDistanceAlertSignal ==
8355 L4_MABX_P.CompareToConstant3_const);
8356
8357 /* RelationalOperator: '<S363>/Compare' incorporates:
8358 * Constant: '<S363>/Constant'
8359 */
8360 L4_MABX_B.Compare_dv = (L4_MABX_B.ForwardCollisionWarning ==
8361 L4_MABX_P.CompareToConstant8_const);
8362
8363 /* Logic: '<S332>/Logical Operator1' */
8364 L4_MABX_B.LogicalOperator1_g = (L4_MABX_B.Compare_d3 || L4_MABX_B.Compare_dv);
8365
8366 /* UnitDelay: '<S365>/Unit_Delay' */
8367 L4_MABX_B.Unit_Delay_hz = L4_MABX_DW.Unit_Delay_DSTATE_iy;
8368
8369 /* Logic: '<S365>/Logical Operator1' */
8370 L4_MABX_B.LogicalOperator1_jp = !L4_MABX_B.Unit_Delay_hz;
8371
8372 /* Logic: '<S365>/Logical Operator' */
8373 L4_MABX_B.LogicalOperator_kf = (L4_MABX_B.LogicalOperator1_g &&
8374 L4_MABX_B.LogicalOperator1_jp);
8375
8376 /* UnitDelay: '<S366>/Unit_Delay' */
8377 L4_MABX_B.Unit_Delay_c4 = L4_MABX_DW.Unit_Delay_DSTATE_mv;
8378
8379 /* Logic: '<S366>/Logical Operator1' */
8380 L4_MABX_B.LogicalOperator1_l4 = (L4_MABX_B.LogicalOperator_kf ||
8381 L4_MABX_B.Unit_Delay_c4);
8382
8383 /* UnitDelay: '<S332>/Unit_Delay' */
8384 L4_MABX_B.Unit_Delay_nc = L4_MABX_DW.Unit_Delay_DSTATE_g;
8385
8386 /* MinMax: '<S332>/MinMax' */
8387 DeltaTime = L4_MABX_B.Unit_Delay_nc;
8388 PositionFinalLimited = L4_MABX_B.SFunction1_o1_in;
8389 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8390 PositionFinalLimited = DeltaTime;
8391 }
8392
8393 L4_MABX_B.MinMax_n = PositionFinalLimited;
8394
8395 /* End of MinMax: '<S332>/MinMax' */
8396
8397 /* Outputs for Atomic SubSystem: '<S332>/If_Then_Else4' */
8398
8399 /* Constant: '<S332>/FCW_ACTIVE_VSPD_TARGET_APV' incorporates:
8400 * Constant: '<S332>/Constant4'
8401 */
8402 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_g,
8403 L4_MABX_P.FCW_ACTIVE_VSPD_TARGET_APV_Valu,
8404 L4_MABX_P.Constant4_Value_b, &L4_MABX_B.If_Then_Else4_e);
8405
8406 /* End of Outputs for SubSystem: '<S332>/If_Then_Else4' */
8407
8408 /* UnitDelay: '<S370>/FixPt Unit Delay2' */
8409 L4_MABX_B.FixPtUnitDelay2_pl = L4_MABX_DW.FixPtUnitDelay2_DSTATE_ip;
8410
8411 /* UnitDelay: '<S370>/FixPt Unit Delay1' */
8412 L4_MABX_B.Xold_f = L4_MABX_DW.FixPtUnitDelay1_DSTATE_hq;
8413
8414 /* Switch: '<S370>/Init' */
8415 if (L4_MABX_B.FixPtUnitDelay2_pl != 0) {
8416 L4_MABX_B.Init_b = L4_MABX_B.If_Then_Else4_e.Switch;
8417 } else {
8418 L4_MABX_B.Init_b = L4_MABX_B.Xold_f;
8419 }
8420
8421 /* End of Switch: '<S370>/Init' */
8422
8423 /* Abs: '<S366>/Abs' incorporates:
8424 * Constant: '<S332>/FCW_CTRL_SLEW_INC_APV'
8425 */
8426 L4_MABX_B.Abs_ez = fabs(L4_MABX_P.FCW_CTRL_SLEW_INC_APV_Value);
8427
8428 /* DigitalClock: '<S367>/Digital Clock' */
8429 L4_MABX_B.DigitalClock_b = L4_MABX_M->Timing.t[0];
8430
8431 /* UnitDelay: '<S367>/Unit_Delay' */
8432 L4_MABX_B.Unit_Delay_nx = L4_MABX_DW.Unit_Delay_DSTATE_b;
8433
8434 /* Sum: '<S367>/Subtract' */
8435 L4_MABX_B.Subtract_i = L4_MABX_B.DigitalClock_b - L4_MABX_B.Unit_Delay_nx;
8436
8437 /* Product: '<S366>/Product1' */
8438 L4_MABX_B.Product1_i = L4_MABX_B.Abs_ez * L4_MABX_B.Subtract_i;
8439
8440 /* Sum: '<S366>/Add1' */
8441 L4_MABX_B.Add1_b = L4_MABX_B.Init_b + L4_MABX_B.Product1_i;
8442
8443 /* MinMax: '<S366>/MinMax2' */
8444 DeltaTime = L4_MABX_B.If_Then_Else4_e.Switch;
8445 PositionFinalLimited = L4_MABX_B.Add1_b;
8446 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8447 PositionFinalLimited = DeltaTime;
8448 }
8449
8450 L4_MABX_B.MinMax2_k = PositionFinalLimited;
8451
8452 /* End of MinMax: '<S366>/MinMax2' */
8453
8454 /* Abs: '<S366>/Abs1' incorporates:
8455 * Constant: '<S332>/FCW_CTRL_SLEW_DEC_APV'
8456 */
8457 L4_MABX_B.Abs1_c = fabs(L4_MABX_P.FCW_CTRL_SLEW_DEC_APV_Value);
8458
8459 /* Product: '<S366>/Product2' */
8460 L4_MABX_B.Product2_n = L4_MABX_B.Subtract_i * L4_MABX_B.Abs1_c;
8461
8462 /* Sum: '<S366>/Subtract1' */
8463 L4_MABX_B.Subtract1_h = L4_MABX_B.Init_b - L4_MABX_B.Product2_n;
8464
8465 /* MinMax: '<S366>/MinMax1' */
8466 DeltaTime = L4_MABX_B.MinMax2_k;
8467 PositionFinalLimited = L4_MABX_B.Subtract1_h;
8468 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8469 PositionFinalLimited = DeltaTime;
8470 }
8471
8472 L4_MABX_B.MinMax1_j = PositionFinalLimited;
8473
8474 /* End of MinMax: '<S366>/MinMax1' */
8475
8476 /* Outputs for Atomic SubSystem: '<S366>/If_Then_Else' */
8477 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_l4, L4_MABX_B.MinMax_n,
8478 L4_MABX_B.MinMax1_j, &L4_MABX_B.If_Then_Else_bf);
8479
8480 /* End of Outputs for SubSystem: '<S366>/If_Then_Else' */
8481
8482 /* RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' */
8483 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
8484 L4_MABX_B.pathSpdLimit_a = L4_MABX_DW.TmpRTBAtSignalConversion3Inport;
8485 }
8486
8487 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8488 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8489 */
8490 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8491 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8492 /* SignalConversion: '<S81>/Signal Conversion3' */
8493 L4_MABX_B.Vehicle_speed_abs_max_e = L4_MABX_B.pathSpdLimit_a;
8494 L4_MABX_B.Vehicle_speed_abs_max = L4_MABX_B.Vehicle_speed_abs_max_e;
8495 break;
8496
8497 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8498 /* SignalConversion: '<S81>/Signal Conversion8' incorporates:
8499 * Constant: '<S81>/VSPD_ABS_MAX_APV'
8500 */
8501 L4_MABX_B.Vehicle_speed_abs_max_j = L4_MABX_P.VSPD_ABS_MAX_APV_Value;
8502 L4_MABX_B.Vehicle_speed_abs_max = L4_MABX_B.Vehicle_speed_abs_max_j;
8503 break;
8504
8505 default:
8506 /* SignalConversion: '<S81>/Signal Conversion15' incorporates:
8507 * Constant: '<S81>/CPV1'
8508 */
8509 L4_MABX_B.Vehicle_speed_abs_max_g = L4_MABX_P.CPV1_Value;
8510 L4_MABX_B.Vehicle_speed_abs_max = L4_MABX_B.Vehicle_speed_abs_max_g;
8511 break;
8512 }
8513
8514 /* RelationalOperator: '<S328>/Compare' incorporates:
8515 * Constant: '<S328>/Constant'
8516 */
8517 L4_MABX_B.Compare_jr = (L4_MABX_B.SFunction1_o7_fa ==
8518 L4_MABX_P.Constant_Value_a);
8519
8520 /* RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' */
8521 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
8522 L4_MABX_B.distance_o = L4_MABX_DW.TmpRTBAtSignalConversion2Inport;
8523 }
8524
8525 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8526 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8527 */
8528 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8529 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8530 /* SignalConversion: '<S81>/Signal Conversion2' */
8531 L4_MABX_B.Distance_to_achieve_speed_tar_f = L4_MABX_B.distance_o;
8532 L4_MABX_B.Distance_to_achieve_speed_targe =
8533 L4_MABX_B.Distance_to_achieve_speed_tar_f;
8534 break;
8535
8536 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8537 /* SignalConversion: '<S81>/Signal Conversion7' incorporates:
8538 * Constant: '<S81>/DISTANCE_M'
8539 */
8540 L4_MABX_B.Distance_to_achieve_speed_tar_j = DISTANCE_M;
8541 L4_MABX_B.Distance_to_achieve_speed_targe =
8542 L4_MABX_B.Distance_to_achieve_speed_tar_j;
8543 break;
8544
8545 default:
8546 /* SignalConversion: '<S81>/Signal Conversion14' incorporates:
8547 * Constant: '<S81>/CPV'
8548 */
8549 L4_MABX_B.Distance_to_achieve_speed_tar_m = L4_MABX_P.CPV_Value_ia;
8550 L4_MABX_B.Distance_to_achieve_speed_targe =
8551 L4_MABX_B.Distance_to_achieve_speed_tar_m;
8552 break;
8553 }
8554
8555 /* UnitDelay: '<S329>/Delay Input1' */
8556 L4_MABX_B.Uk1[0] = L4_MABX_DW.DelayInput1_DSTATE[0];
8557 L4_MABX_B.Uk1[1] = L4_MABX_DW.DelayInput1_DSTATE[1];
8558
8559 /* RelationalOperator: '<S329>/FixPt Relational Operator' */
8560 L4_MABX_B.FixPtRelationalOperator_d[0] =
8561 (L4_MABX_B.Distance_to_achieve_speed_targe != L4_MABX_B.Uk1[0]);
8562 L4_MABX_B.FixPtRelationalOperator_d[1] = (L4_MABX_B.Vehicle_speed_target_o !=
8563 L4_MABX_B.Uk1[1]);
8564
8565 /* Logic: '<S81>/Logical Operator1' */
8566 L4_MABX_B.LogicalOperator1_ja = (L4_MABX_B.FixPtRelationalOperator_d[0] ||
8567 L4_MABX_B.FixPtRelationalOperator_d[1]);
8568
8569 /* Saturate: '<S331>/Saturation5' */
8570 DeltaTime = L4_MABX_B.SFunction1_o1_in;
8571 Time56 = L4_MABX_P.Saturation5_LowerSat;
8572 PositionFinalLimited = L4_MABX_P.Saturation5_UpperSat;
8573 if (DeltaTime > PositionFinalLimited) {
8574 L4_MABX_B.Saturation5 = PositionFinalLimited;
8575 } else if (DeltaTime < Time56) {
8576 L4_MABX_B.Saturation5 = Time56;
8577 } else {
8578 L4_MABX_B.Saturation5 = DeltaTime;
8579 }
8580
8581 /* End of Saturate: '<S331>/Saturation5' */
8582
8583 /* MinMax: '<S331>/MinMax6' incorporates:
8584 * Constant: '<S331>/MIN_VSPD_SIGMOID_INITIAL_KPH_APV'
8585 */
8586 DeltaTime = L4_MABX_B.Saturation5;
8587 PositionFinalLimited = L4_MABX_P.MIN_VSPD_SIGMOID_INITIAL_KPH_AP;
8588 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8589 PositionFinalLimited = DeltaTime;
8590 }
8591
8592 L4_MABX_B.MinMax6 = PositionFinalLimited;
8593
8594 /* End of MinMax: '<S331>/MinMax6' */
8595
8596 /* Gain: '<S331>/Gain1' */
8597 L4_MABX_B.Gain1_e = L4_MABX_P.Gain1_Gain_a * L4_MABX_B.MinMax6;
8598
8599 /* Saturate: '<S331>/Saturation4' */
8600 DeltaTime = L4_MABX_B.Vehicle_speed_target_o;
8601 Time56 = L4_MABX_P.Saturation4_LowerSat;
8602 PositionFinalLimited = L4_MABX_P.Saturation4_UpperSat;
8603 if (DeltaTime > PositionFinalLimited) {
8604 L4_MABX_B.VSPD_TARGET_KPH_APV_gu = PositionFinalLimited;
8605 } else if (DeltaTime < Time56) {
8606 L4_MABX_B.VSPD_TARGET_KPH_APV_gu = Time56;
8607 } else {
8608 L4_MABX_B.VSPD_TARGET_KPH_APV_gu = DeltaTime;
8609 }
8610
8611 /* End of Saturate: '<S331>/Saturation4' */
8612
8613 /* MinMax: '<S331>/MinMax1' incorporates:
8614 * Constant: '<S331>/MIN_VSPD_SIGMOID_FINAL_KPH_APV'
8615 */
8616 DeltaTime = L4_MABX_B.VSPD_TARGET_KPH_APV_gu;
8617 PositionFinalLimited = L4_MABX_P.MIN_VSPD_SIGMOID_FINAL_KPH_APV_;
8618 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8619 PositionFinalLimited = DeltaTime;
8620 }
8621
8622 L4_MABX_B.MinMax1_f = PositionFinalLimited;
8623
8624 /* End of MinMax: '<S331>/MinMax1' */
8625
8626 /* Gain: '<S331>/Gain2' */
8627 L4_MABX_B.Gain2 = L4_MABX_P.Gain2_Gain_k * L4_MABX_B.MinMax1_f;
8628
8629 /* Saturate: '<S331>/Saturation6' */
8630 DeltaTime = SPN1810_LongitudinalAcceleration;
8631 Time56 = L4_MABX_P.Saturation6_LowerSat;
8632 PositionFinalLimited = L4_MABX_P.Saturation6_UpperSat;
8633 if (DeltaTime > PositionFinalLimited) {
8634 L4_MABX_B.Saturation6 = PositionFinalLimited;
8635 } else if (DeltaTime < Time56) {
8636 L4_MABX_B.Saturation6 = Time56;
8637 } else {
8638 L4_MABX_B.Saturation6 = DeltaTime;
8639 }
8640
8641 /* End of Saturate: '<S331>/Saturation6' */
8642
8643 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8644 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8645 */
8646 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8647 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8648 /* SignalConversion: '<S81>/Signal Conversion10' incorporates:
8649 * Constant: '<S81>/CPV3'
8650 */
8651 L4_MABX_B.Acceleration_target_ms2_d = L4_MABX_P.CPV3_Value_l;
8652 L4_MABX_B.Acceleration_target_ms2 = L4_MABX_B.Acceleration_target_ms2_d;
8653 break;
8654
8655 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8656 /* SignalConversion: '<S81>/Signal Conversion5' incorporates:
8657 * Constant: '<S81>/VEH_ACCEL_TARGET_APV'
8658 */
8659 L4_MABX_B.Acceleration_target_ms2_h = L4_MABX_P.VEH_ACCEL_TARGET_APV_Value;
8660 L4_MABX_B.Acceleration_target_ms2 = L4_MABX_B.Acceleration_target_ms2_h;
8661 break;
8662
8663 default:
8664 /* SignalConversion: '<S81>/Signal Conversion11' incorporates:
8665 * Constant: '<S81>/CPV2'
8666 */
8667 L4_MABX_B.Acceleration_target_ms2_f = L4_MABX_P.CPV2_Value;
8668 L4_MABX_B.Acceleration_target_ms2 = L4_MABX_B.Acceleration_target_ms2_f;
8669 break;
8670 }
8671
8672 /* Saturate: '<S331>/Saturation7' */
8673 DeltaTime = L4_MABX_B.Acceleration_target_ms2;
8674 Time56 = L4_MABX_P.Saturation7_LowerSat;
8675 PositionFinalLimited = L4_MABX_P.Saturation7_UpperSat;
8676 if (DeltaTime > PositionFinalLimited) {
8677 L4_MABX_B.Saturation7 = PositionFinalLimited;
8678 } else if (DeltaTime < Time56) {
8679 L4_MABX_B.Saturation7 = Time56;
8680 } else {
8681 L4_MABX_B.Saturation7 = DeltaTime;
8682 }
8683
8684 /* End of Saturate: '<S331>/Saturation7' */
8685
8686 /* Saturate: '<S331>/Saturation1' incorporates:
8687 * Constant: '<S81>/VEH_JERK_INITIAL_APV'
8688 */
8689 DeltaTime = L4_MABX_P.VEH_JERK_INITIAL_APV_Value;
8690 Time56 = L4_MABX_P.Saturation1_LowerSat_b;
8691 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat_o;
8692 if (DeltaTime > PositionFinalLimited) {
8693 L4_MABX_B.Saturation1 = PositionFinalLimited;
8694 } else if (DeltaTime < Time56) {
8695 L4_MABX_B.Saturation1 = Time56;
8696 } else {
8697 L4_MABX_B.Saturation1 = DeltaTime;
8698 }
8699
8700 /* End of Saturate: '<S331>/Saturation1' */
8701
8702 /* MultiPortSwitch: '<S81>/Multiport Switch' incorporates:
8703 * Constant: '<S81>/LONG_SPEED_SRC_SELECTOR_APV'
8704 */
8705 switch (LONG_SPEED_SRC_SELECTOR_APV) {
8706 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
8707 /* SignalConversion: '<S81>/Signal Conversion13' incorporates:
8708 * Constant: '<S81>/CPV4'
8709 */
8710 L4_MABX_B.Jerk_target_ms3_g = L4_MABX_P.CPV4_Value_k;
8711 L4_MABX_B.Jerk_target_ms3 = L4_MABX_B.Jerk_target_ms3_g;
8712 break;
8713
8714 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
8715 /* SignalConversion: '<S81>/Signal Conversion6' incorporates:
8716 * Constant: '<S81>/VEH_JERK_TARGET_APV'
8717 */
8718 L4_MABX_B.Jerk_target_ms3_d = L4_MABX_P.VEH_JERK_TARGET_APV_Value;
8719 L4_MABX_B.Jerk_target_ms3 = L4_MABX_B.Jerk_target_ms3_d;
8720 break;
8721
8722 default:
8723 /* SignalConversion: '<S81>/Signal Conversion12' incorporates:
8724 * Constant: '<S81>/CPV5'
8725 */
8726 L4_MABX_B.Jerk_target_ms3_l = L4_MABX_P.CPV5_Value_n;
8727 L4_MABX_B.Jerk_target_ms3 = L4_MABX_B.Jerk_target_ms3_l;
8728 break;
8729 }
8730
8731 /* Saturate: '<S331>/Saturation2' */
8732 DeltaTime = L4_MABX_B.Jerk_target_ms3;
8733 Time56 = L4_MABX_P.Saturation2_LowerSat;
8734 PositionFinalLimited = L4_MABX_P.Saturation2_UpperSat;
8735 if (DeltaTime > PositionFinalLimited) {
8736 L4_MABX_B.Saturation2 = PositionFinalLimited;
8737 } else if (DeltaTime < Time56) {
8738 L4_MABX_B.Saturation2 = Time56;
8739 } else {
8740 L4_MABX_B.Saturation2 = DeltaTime;
8741 }
8742
8743 /* End of Saturate: '<S331>/Saturation2' */
8744
8745 /* Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
8746 /* Gateway: Controller/L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/VehicleSpeedSetpointDynamicCalculation */
8747 /* During: Controller/L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/VehicleSpeedSetpointDynamicCalculation */
8748 /* Entry Internal: Controller/L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/VehicleSpeedSetpointDynamicCalculation */
8749 /* Transition: '<S346>:88' */
8750 if (L4_MABX_B.LogicalOperator1_ja) {
8751 /* Transition: '<S346>:89' */
8752 /* Transition: '<S346>:39' */
8753 PositionFinalLimited = L4_MABX_B.Distance_to_achieve_speed_targe;
8754 if ((0.001 > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
8755 PositionFinalLimited = 0.001;
8756 }
8757
8758 Time56 = L4_MABX_B.Gain1_e;
8759 if ((0.1 > Time56) || rtIsNaN(Time56)) {
8760 L4_MABX_DW.VelocityInitialLimited = 0.1;
8761 } else {
8762 L4_MABX_DW.VelocityInitialLimited = Time56;
8763 }
8764
8765 Time56 = L4_MABX_B.Gain2;
8766 if ((0.1 > Time56) || rtIsNaN(Time56)) {
8767 L4_MABX_DW.VelocityFinalLimited = 0.1;
8768 } else {
8769 L4_MABX_DW.VelocityFinalLimited = Time56;
8770 }
8771
8772 L4_MABX_DW.TimeFinal = 2.0 * PositionFinalLimited /
8773 (L4_MABX_DW.VelocityInitialLimited + L4_MABX_DW.VelocityFinalLimited);
8774 Time56 = L4_MABX_DW.TimeFinal;
8775 if ((0.007 > Time56) || rtIsNaN(Time56)) {
8776 L4_MABX_DW.TimeFinal = 0.007;
8777 } else {
8778 L4_MABX_DW.TimeFinal = Time56;
8779 }
8780
8781 AccelerationAverage = (L4_MABX_DW.VelocityFinalLimited -
8782 L4_MABX_DW.VelocityInitialLimited) / L4_MABX_DW.TimeFinal;
8783 L4_MABX_DW.TimeFinal *= 2.0;
8784 if (L4_MABX_DW.VelocityFinalLimited > L4_MABX_DW.VelocityInitialLimited) {
8785 /* Transition: '<S346>:238' */
8786 /* Transition: '<S346>:240' */
8787 Time56 = L4_MABX_B.Saturation6;
8788 if ((AccelerationAverage < Time56) || rtIsNaN(Time56)) {
8789 Time56 = AccelerationAverage;
8790 }
8791
8792 if ((0.0 > Time56) || rtIsNaN(Time56)) {
8793 L4_MABX_DW.AccelerationInitialLimited = 0.0;
8794 } else {
8795 L4_MABX_DW.AccelerationInitialLimited = Time56;
8796 }
8797
8798 Time56 = L4_MABX_B.Saturation7;
8799 if ((AccelerationAverage < Time56) || rtIsNaN(Time56)) {
8800 Time56 = AccelerationAverage;
8801 }
8802
8803 if ((0.0 > Time56) || rtIsNaN(Time56)) {
8804 L4_MABX_DW.AccelerationFinalLimited = 0.0;
8805 } else {
8806 L4_MABX_DW.AccelerationFinalLimited = Time56;
8807 }
8808
8809 /* Transition: '<S346>:243' */
8810 } else {
8811 /* Transition: '<S346>:241' */
8812 Time56 = L4_MABX_B.Saturation6;
8813 if ((0.0 < Time56) || rtIsNaN(Time56)) {
8814 Time56 = 0.0;
8815 }
8816
8817 if ((AccelerationAverage > Time56) || rtIsNaN(Time56)) {
8818 L4_MABX_DW.AccelerationInitialLimited = AccelerationAverage;
8819 } else {
8820 L4_MABX_DW.AccelerationInitialLimited = Time56;
8821 }
8822
8823 Time56 = L4_MABX_B.Saturation7;
8824 if ((0.0 < Time56) || rtIsNaN(Time56)) {
8825 Time56 = 0.0;
8826 }
8827
8828 if ((AccelerationAverage > Time56) || rtIsNaN(Time56)) {
8829 L4_MABX_DW.AccelerationFinalLimited = AccelerationAverage;
8830 } else {
8831 L4_MABX_DW.AccelerationFinalLimited = Time56;
8832 }
8833 }
8834
8835 /* Transition: '<S346>:16' */
8836 DeltaTimeFinal = L4_MABX_DW.TimeFinal;
8837 for (starting_index = 1U; starting_index < 16; starting_index++) {
8838 /* Transition: '<S346>:14' */
8839 /* Transition: '<S346>:201' */
8840 DeltaTime = ((L4_MABX_DW.VelocityInitialLimited -
8841 L4_MABX_DW.VelocityFinalLimited) +
8842 L4_MABX_DW.AccelerationFinalLimited * L4_MABX_DW.TimeFinal) *
8843 2.0 / (L4_MABX_DW.TimeFinal * L4_MABX_DW.TimeFinal);
8844 if (L4_MABX_DW.VelocityFinalLimited > L4_MABX_DW.VelocityInitialLimited) {
8845 /* Transition: '<S346>:121' */
8846 /* Transition: '<S346>:116' */
8847 L4_MABX_DW.Jerk12 = L4_MABX_B.Saturation1;
8848 DeltaTime = fabs(DeltaTime);
8849 Time56 = L4_MABX_B.Saturation2;
8850 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
8851 Time56 = DeltaTime;
8852 }
8853
8854 L4_MABX_DW.Jerk56 = -Time56;
8855
8856 /* Transition: '<S346>:120' */
8857 } else {
8858 /* Transition: '<S346>:122' */
8859 L4_MABX_DW.Jerk12 = -L4_MABX_B.Saturation1;
8860 DeltaTime = fabs(DeltaTime);
8861 Time56 = L4_MABX_B.Saturation2;
8862 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
8863 L4_MABX_DW.Jerk56 = DeltaTime;
8864 } else {
8865 L4_MABX_DW.Jerk56 = Time56;
8866 }
8867 }
8868
8869 /* Transition: '<S346>:275' */
8870 L4_MABX_CalculateAcceleration34();
8871 if (fabs(L4_MABX_DW.Acceleration34 - AccelerationAverage) < 0.001) {
8872 /* Transition: '<S346>:141' */
8873 /* Transition: '<S346>:145' */
8874 L4_MABX_B.TimeVectorRaw[0] = 0.0;
8875 L4_MABX_B.TimeVectorRaw[1] = 0.001;
8876 L4_MABX_B.TimeVectorRaw[2] = 0.003;
8877 L4_MABX_B.TimeVectorRaw[3] = (L4_MABX_DW.TimeFinal - 0.002) - 0.001;
8878 L4_MABX_B.TimeVectorRaw[4] = (L4_MABX_DW.TimeFinal - 0.002) + 0.001;
8879 L4_MABX_B.TimeVectorRaw[5] = L4_MABX_DW.TimeFinal;
8880 for (i = 0; i < 6; i++) {
8881 L4_MABX_B.JerkVectorRaw[i] = 0.0;
8882 }
8883
8884 L4_MABX_B.AccelerationVectorRaw[0] = AccelerationAverage;
8885
8886 /* Transition: '<S346>:191' */
8887 /* Transition: '<S346>:303' */
8888 } else {
8889 /* Transition: '<S346>:298' */
8890 if (L4_MABX_DW.AlternateMethod) {
8891 /* Transition: '<S346>:300' */
8892 /* Transition: '<S346>:302' */
8893 Time56 = (L4_MABX_DW.AccelerationFinalLimited -
8894 L4_MABX_DW.Acceleration34) / L4_MABX_DW.Jerk56;
8895 if ((0.002 > Time56) || rtIsNaN(Time56)) {
8896 Time56 = 0.002;
8897 }
8898
8899 L4_MABX_B.TimeVectorRaw[0] = 0.0;
8900 L4_MABX_B.TimeVectorRaw[1] = 0.001;
8901 L4_MABX_B.TimeVectorRaw[2] = 0.003;
8902 L4_MABX_B.TimeVectorRaw[3] = (L4_MABX_DW.TimeFinal - Time56) - 0.001;
8903 L4_MABX_B.TimeVectorRaw[4] = (L4_MABX_DW.TimeFinal - Time56) + 0.001;
8904 L4_MABX_B.TimeVectorRaw[5] = L4_MABX_DW.TimeFinal;
8905 L4_MABX_B.JerkVectorRaw[0] = 0.0;
8906 L4_MABX_B.JerkVectorRaw[1] = 0.0;
8907 L4_MABX_B.JerkVectorRaw[2] = 0.0;
8908 L4_MABX_B.JerkVectorRaw[3] = 0.0;
8909 L4_MABX_B.JerkVectorRaw[4] = L4_MABX_DW.Jerk56;
8910 L4_MABX_B.JerkVectorRaw[5] = L4_MABX_DW.Jerk56;
8911 L4_MABX_B.AccelerationVectorRaw[0] = L4_MABX_DW.Acceleration34;
8912
8913 /* Transition: '<S346>:303' */
8914 } else {
8915 /* Transition: '<S346>:157' */
8916 DeltaTime = (L4_MABX_DW.Acceleration34 -
8917 L4_MABX_DW.AccelerationInitialLimited) /
8918 L4_MABX_DW.Jerk12;
8919 if ((0.002 > DeltaTime) || rtIsNaN(DeltaTime)) {
8920 DeltaTime = 0.002;
8921 }
8922
8923 Time56 = (L4_MABX_DW.AccelerationFinalLimited -
8924 L4_MABX_DW.Acceleration34) / L4_MABX_DW.Jerk56;
8925 if ((0.002 > Time56) || rtIsNaN(Time56)) {
8926 Time56 = 0.002;
8927 }
8928
8929 L4_MABX_B.TimeVectorRaw[0] = 0.0;
8930 L4_MABX_B.TimeVectorRaw[1] = DeltaTime - 0.001;
8931 L4_MABX_B.TimeVectorRaw[2] = DeltaTime + 0.001;
8932 L4_MABX_B.TimeVectorRaw[3] = (L4_MABX_DW.TimeFinal - Time56) - 0.001;
8933 L4_MABX_B.TimeVectorRaw[4] = (L4_MABX_DW.TimeFinal - Time56) + 0.001;
8934 L4_MABX_B.TimeVectorRaw[5] = L4_MABX_DW.TimeFinal;
8935 L4_MABX_B.JerkVectorRaw[0] = L4_MABX_DW.Jerk12;
8936 L4_MABX_B.JerkVectorRaw[1] = L4_MABX_DW.Jerk12;
8937 L4_MABX_B.JerkVectorRaw[2] = 0.0;
8938 L4_MABX_B.JerkVectorRaw[3] = 0.0;
8939 L4_MABX_B.JerkVectorRaw[4] = L4_MABX_DW.Jerk56;
8940 L4_MABX_B.JerkVectorRaw[5] = L4_MABX_DW.Jerk56;
8941 L4_MABX_B.AccelerationVectorRaw[0] =
8942 L4_MABX_DW.AccelerationInitialLimited;
8943 }
8944 }
8945
8946 /* Transition: '<S346>:29' */
8947 L4_MABX_B.VelocityVectorRaw[0] = L4_MABX_DW.VelocityInitialLimited;
8948 L4_MABX_B.PositionVectorRaw[0] = 0.0;
8949 for (j = 2U; j < 7; j++) {
8950 /* Transition: '<S346>:34' */
8951 /* Transition: '<S346>:36' */
8952 DeltaTime = L4_MABX_B.TimeVectorRaw[j - 1] - L4_MABX_B.TimeVectorRaw[j -
8953 2];
8954 L4_MABX_B.AccelerationVectorRaw[j - 1] = L4_MABX_B.JerkVectorRaw[j - 2] *
8955 DeltaTime + L4_MABX_B.AccelerationVectorRaw[j - 2];
8956 L4_MABX_B.VelocityVectorRaw[j - 1] = (L4_MABX_B.AccelerationVectorRaw[j
8957 - 2] * DeltaTime + L4_MABX_B.VelocityVectorRaw[j - 2]) +
8958 L4_MABX_B.JerkVectorRaw[j - 2] * 0.5 * (DeltaTime * DeltaTime);
8959 L4_MABX_B.PositionVectorRaw[j - 1] = ((L4_MABX_B.VelocityVectorRaw[j - 2]
8960 * DeltaTime + L4_MABX_B.PositionVectorRaw[j - 2]) +
8961 L4_MABX_B.AccelerationVectorRaw[j - 2] * 0.5 * (DeltaTime * DeltaTime))
8962 + L4_MABX_B.JerkVectorRaw[j - 2] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
8963
8964 /* Transition: '<S346>:33' */
8965 }
8966
8967 /* Transition: '<S346>:37' */
8968 DeltaTimeFinal *= 0.5;
8969 if ((L4_MABX_B.PositionVectorRaw[5] - PositionFinalLimited < 0.0) &&
8970 (L4_MABX_B.VelocityVectorRaw[5] > 0.0)) {
8971 /* Transition: '<S346>:61' */
8972 /* Transition: '<S346>:62' */
8973 L4_MABX_DW.TimeFinal += DeltaTimeFinal;
8974
8975 /* Transition: '<S346>:64' */
8976 } else {
8977 /* Transition: '<S346>:63' */
8978 L4_MABX_DW.TimeFinal -= DeltaTimeFinal;
8979 }
8980
8981 /* Transition: '<S346>:60' */
8982 Time56 = L4_MABX_DW.TimeFinal;
8983 if ((0.007 > Time56) || rtIsNaN(Time56)) {
8984 L4_MABX_DW.TimeFinal = 0.007;
8985 } else {
8986 L4_MABX_DW.TimeFinal = Time56;
8987 }
8988
8989 /* Transition: '<S346>:17' */
8990 }
8991
8992 /* Transition: '<S346>:18' */
8993 /* Transition: '<S346>:91' */
8994 } else {
8995 /* Transition: '<S346>:90' */
8996 }
8997
8998 /* End of Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
8999
9000 /* Chart: '<S331>/TwentyPointVectorCalculation' */
9001 if (L4_MABX_B.LogicalOperator1_ja) {
9002 /* Transition: '<S345>:89' */
9003 /* Transition: '<S345>:39' */
9004 L4_MABX_B.TimeVector[0] = L4_MABX_B.TimeVectorRaw[0];
9005 L4_MABX_B.JerkVector[0] = L4_MABX_B.JerkVectorRaw[0];
9006 L4_MABX_B.AccelerationVector[0] = L4_MABX_B.AccelerationVectorRaw[0];
9007 L4_MABX_B.VelocityVector[0] = L4_MABX_B.VelocityVectorRaw[0];
9008 L4_MABX_B.PositionVector[0] = L4_MABX_B.PositionVectorRaw[0];
9009 PositionFinalLimited = (L4_MABX_B.TimeVectorRaw[1] -
9010 L4_MABX_B.TimeVectorRaw[0]) / 10.0;
9011 for (starting_index = 2U; starting_index < 11; starting_index++) {
9012 /* Transition: '<S345>:14' */
9013 /* Transition: '<S345>:101' */
9014 L4_MABX_B.TimeVector[starting_index - 1] =
9015 L4_MABX_B.TimeVector[starting_index - 2] + PositionFinalLimited;
9016 DeltaTime = L4_MABX_B.TimeVector[starting_index - 1] -
9017 L4_MABX_B.TimeVectorRaw[0];
9018 L4_MABX_B.JerkVector[starting_index - 1] = L4_MABX_B.JerkVectorRaw[0];
9019 L4_MABX_B.AccelerationVector[starting_index - 1] =
9020 L4_MABX_B.JerkVectorRaw[0] * DeltaTime +
9021 L4_MABX_B.AccelerationVectorRaw[0];
9022 L4_MABX_B.VelocityVector[starting_index - 1] =
9023 (L4_MABX_B.AccelerationVectorRaw[0] * DeltaTime +
9024 L4_MABX_B.VelocityVectorRaw[0]) + 0.5 * L4_MABX_B.JerkVectorRaw[0] *
9025 (DeltaTime * DeltaTime);
9026 L4_MABX_B.PositionVector[starting_index - 1] =
9027 ((L4_MABX_B.VelocityVectorRaw[0] * DeltaTime +
9028 L4_MABX_B.PositionVectorRaw[0]) + 0.5 *
9029 L4_MABX_B.AccelerationVectorRaw[0] * (DeltaTime * DeltaTime)) +
9030 L4_MABX_B.JerkVectorRaw[0] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9031 DeltaTime = L4_MABX_B.PositionVector[starting_index - 2] + 0.0001;
9032 Time56 = L4_MABX_B.PositionVector[starting_index - 1];
9033 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9034 Time56 = DeltaTime;
9035 }
9036
9037 L4_MABX_B.PositionVector[starting_index - 1] = Time56;
9038
9039 /* Transition: '<S345>:17' */
9040 }
9041
9042 /* Transition: '<S345>:110' */
9043 L4_MABX_B.TimeVector[10] = L4_MABX_B.TimeVectorRaw[1];
9044 L4_MABX_B.JerkVector[10] = L4_MABX_B.JerkVectorRaw[1];
9045 L4_MABX_B.AccelerationVector[10] = L4_MABX_B.AccelerationVectorRaw[1];
9046 L4_MABX_B.VelocityVector[10] = L4_MABX_B.VelocityVectorRaw[1];
9047 DeltaTime = L4_MABX_B.PositionVector[9] + 0.0001;
9048 Time56 = L4_MABX_B.PositionVectorRaw[1];
9049 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9050 Time56 = DeltaTime;
9051 }
9052
9053 L4_MABX_B.PositionVector[10] = Time56;
9054 L4_MABX_B.TimeVector[11] = L4_MABX_B.TimeVectorRaw[2];
9055 L4_MABX_B.JerkVector[11] = L4_MABX_B.JerkVectorRaw[2];
9056 L4_MABX_B.AccelerationVector[11] = L4_MABX_B.AccelerationVectorRaw[2];
9057 L4_MABX_B.VelocityVector[11] = L4_MABX_B.VelocityVectorRaw[2];
9058 DeltaTime = L4_MABX_B.PositionVector[10] + 0.0001;
9059 Time56 = L4_MABX_B.PositionVectorRaw[2];
9060 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9061 Time56 = DeltaTime;
9062 }
9063
9064 L4_MABX_B.PositionVector[11] = Time56;
9065 PositionFinalLimited = (L4_MABX_B.TimeVectorRaw[3] -
9066 L4_MABX_B.TimeVectorRaw[2]) / 10.0;
9067 for (starting_index = 13U; starting_index < 22; starting_index++) {
9068 /* Transition: '<S345>:127' */
9069 /* Transition: '<S345>:133' */
9070 L4_MABX_B.TimeVector[starting_index - 1] =
9071 L4_MABX_B.TimeVector[starting_index - 2] + PositionFinalLimited;
9072 DeltaTime = L4_MABX_B.TimeVector[starting_index - 1] -
9073 L4_MABX_B.TimeVectorRaw[2];
9074 L4_MABX_B.JerkVector[starting_index - 1] = L4_MABX_B.JerkVectorRaw[2];
9075 L4_MABX_B.AccelerationVector[starting_index - 1] =
9076 L4_MABX_B.JerkVectorRaw[2] * DeltaTime +
9077 L4_MABX_B.AccelerationVectorRaw[2];
9078 L4_MABX_B.VelocityVector[starting_index - 1] =
9079 (L4_MABX_B.AccelerationVectorRaw[2] * DeltaTime +
9080 L4_MABX_B.VelocityVectorRaw[2]) + 0.5 * L4_MABX_B.JerkVectorRaw[2] *
9081 (DeltaTime * DeltaTime);
9082 L4_MABX_B.PositionVector[starting_index - 1] =
9083 ((L4_MABX_B.VelocityVectorRaw[2] * DeltaTime +
9084 L4_MABX_B.PositionVectorRaw[2]) + 0.5 *
9085 L4_MABX_B.AccelerationVectorRaw[2] * (DeltaTime * DeltaTime)) +
9086 L4_MABX_B.JerkVectorRaw[2] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9087 DeltaTime = L4_MABX_B.PositionVector[starting_index - 2] + 0.0001;
9088 Time56 = L4_MABX_B.PositionVector[starting_index - 1];
9089 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9090 Time56 = DeltaTime;
9091 }
9092
9093 L4_MABX_B.PositionVector[starting_index - 1] = Time56;
9094
9095 /* Transition: '<S345>:131' */
9096 }
9097
9098 /* Transition: '<S345>:132' */
9099 L4_MABX_B.TimeVector[21] = L4_MABX_B.TimeVectorRaw[3];
9100 L4_MABX_B.JerkVector[21] = L4_MABX_B.JerkVectorRaw[3];
9101 L4_MABX_B.AccelerationVector[21] = L4_MABX_B.AccelerationVectorRaw[3];
9102 L4_MABX_B.VelocityVector[21] = L4_MABX_B.VelocityVectorRaw[3];
9103 DeltaTime = L4_MABX_B.PositionVector[20] + 0.0001;
9104 Time56 = L4_MABX_B.PositionVectorRaw[3];
9105 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9106 Time56 = DeltaTime;
9107 }
9108
9109 L4_MABX_B.PositionVector[21] = Time56;
9110 L4_MABX_B.TimeVector[22] = L4_MABX_B.TimeVectorRaw[4];
9111 L4_MABX_B.JerkVector[22] = L4_MABX_B.JerkVectorRaw[4];
9112 L4_MABX_B.AccelerationVector[22] = L4_MABX_B.AccelerationVectorRaw[4];
9113 L4_MABX_B.VelocityVector[22] = L4_MABX_B.VelocityVectorRaw[4];
9114 DeltaTime = L4_MABX_B.PositionVector[21] + 0.0001;
9115 Time56 = L4_MABX_B.PositionVectorRaw[4];
9116 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9117 Time56 = DeltaTime;
9118 }
9119
9120 L4_MABX_B.PositionVector[22] = Time56;
9121 PositionFinalLimited = (L4_MABX_B.TimeVectorRaw[5] -
9122 L4_MABX_B.TimeVectorRaw[4]) / 10.0;
9123 for (starting_index = 24U; starting_index < 33; starting_index++) {
9124 /* Transition: '<S345>:111' */
9125 /* Transition: '<S345>:113' */
9126 L4_MABX_B.TimeVector[starting_index - 1] =
9127 L4_MABX_B.TimeVector[starting_index - 2] + PositionFinalLimited;
9128 DeltaTime = L4_MABX_B.TimeVector[starting_index - 1] -
9129 L4_MABX_B.TimeVectorRaw[4];
9130 L4_MABX_B.JerkVector[starting_index - 1] = L4_MABX_B.JerkVectorRaw[4];
9131 L4_MABX_B.AccelerationVector[starting_index - 1] =
9132 L4_MABX_B.JerkVectorRaw[4] * DeltaTime +
9133 L4_MABX_B.AccelerationVectorRaw[4];
9134 L4_MABX_B.VelocityVector[starting_index - 1] =
9135 (L4_MABX_B.AccelerationVectorRaw[4] * DeltaTime +
9136 L4_MABX_B.VelocityVectorRaw[4]) + 0.5 * L4_MABX_B.JerkVectorRaw[4] *
9137 (DeltaTime * DeltaTime);
9138 L4_MABX_B.PositionVector[starting_index - 1] =
9139 ((L4_MABX_B.VelocityVectorRaw[4] * DeltaTime +
9140 L4_MABX_B.PositionVectorRaw[4]) + 0.5 *
9141 L4_MABX_B.AccelerationVectorRaw[4] * (DeltaTime * DeltaTime)) +
9142 L4_MABX_B.JerkVectorRaw[4] / 6.0 * rt_powd_snf(DeltaTime, 3.0);
9143 DeltaTime = L4_MABX_B.PositionVector[starting_index - 2] + 0.0001;
9144 Time56 = L4_MABX_B.PositionVector[starting_index - 1];
9145 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9146 Time56 = DeltaTime;
9147 }
9148
9149 L4_MABX_B.PositionVector[starting_index - 1] = Time56;
9150
9151 /* Transition: '<S345>:112' */
9152 }
9153
9154 /* Transition: '<S345>:114' */
9155 L4_MABX_B.TimeVector[32] = L4_MABX_B.TimeVectorRaw[5];
9156 L4_MABX_B.JerkVector[32] = L4_MABX_B.JerkVectorRaw[5];
9157 L4_MABX_B.AccelerationVector[32] = L4_MABX_B.AccelerationVectorRaw[5];
9158 L4_MABX_B.VelocityVector[32] = L4_MABX_B.VelocityVectorRaw[5];
9159 DeltaTime = L4_MABX_B.PositionVector[31] + 0.0001;
9160 Time56 = L4_MABX_B.PositionVectorRaw[5];
9161 if ((DeltaTime > Time56) || rtIsNaN(Time56)) {
9162 Time56 = DeltaTime;
9163 }
9164
9165 L4_MABX_B.PositionVector[32] = Time56;
9166
9167 /* Transition: '<S345>:141' */
9168 } else {
9169 /* Transition: '<S345>:90' */
9170 }
9171
9172 /* End of Chart: '<S331>/TwentyPointVectorCalculation' */
9173
9174 /* Gain: '<S331>/Gain3' */
9175 /* Transition: '<S346>:93' */
9176 /* Gateway: Controller/L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/TwentyPointVectorCalculation */
9177 /* During: Controller/L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/TwentyPointVectorCalculation */
9178 /* Entry Internal: Controller/L4_Controller/Task_10ms/Vehicle_speed_target/Determine_sigmoid_vehicle_speed_profile/TwentyPointVectorCalculation */
9179 /* Transition: '<S345>:88' */
9180 /* Transition: '<S345>:93' */
9181 for (i = 0; i < 33; i++) {
9182 L4_MABX_B.Vehicle_speed_vector_kph[i] = L4_MABX_P.Gain3_Gain_l *
9183 L4_MABX_B.VelocityVector[i];
9184 }
9185
9186 /* End of Gain: '<S331>/Gain3' */
9187
9188 /* RelationalOperator: '<S348>/Compare' incorporates:
9189 * Constant: '<S348>/Constant'
9190 */
9191 for (i = 0; i < 33; i++) {
9192 L4_MABX_B.Compare_n[i] = (L4_MABX_B.Vehicle_speed_vector_kph[i] <
9193 L4_MABX_P.Constant_Value_n);
9194 }
9195
9196 /* End of RelationalOperator: '<S348>/Compare' */
9197
9198 /* Logic: '<S343>/Logical Operator' */
9199 zcEvent = L4_MABX_B.Compare_n[0];
9200 for (i = 0; i < 32; i++) {
9201 zcEvent = (zcEvent || L4_MABX_B.Compare_n[i + 1]);
9202 }
9203
9204 L4_MABX_B.f_vspd_output_less_than_zero = zcEvent;
9205
9206 /* End of Logic: '<S343>/Logical Operator' */
9207
9208 /* MinMax: '<S343>/MinMax3' */
9209 PositionFinalLimited = L4_MABX_B.Vehicle_speed_vector_kph[0];
9210 for (i = 0; i < 32; i++) {
9211 Time56 = L4_MABX_B.Vehicle_speed_vector_kph[i + 1];
9212 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9213 PositionFinalLimited = Time56;
9214 }
9215 }
9216
9217 L4_MABX_B.MinMax3 = PositionFinalLimited;
9218
9219 /* End of MinMax: '<S343>/MinMax3' */
9220
9221 /* UnitDelay: '<S347>/Unit_Delay' */
9222 L4_MABX_B.Unit_Delay_f = L4_MABX_DW.Unit_Delay_DSTATE_bw;
9223
9224 /* Outputs for Atomic SubSystem: '<S347>/If_Then_Else' */
9225 L4_MABX_If_Then_Else_g(L4_MABX_B.LogicalOperator1_ja, L4_MABX_B.Saturation5,
9226 L4_MABX_B.Unit_Delay_f, &L4_MABX_B.If_Then_Else_og);
9227
9228 /* End of Outputs for SubSystem: '<S347>/If_Then_Else' */
9229
9230 /* MinMax: '<S343>/MinMax5' */
9231 DeltaTime = L4_MABX_B.If_Then_Else_og.Switch;
9232 PositionFinalLimited = L4_MABX_B.VSPD_TARGET_KPH_APV_gu;
9233 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9234 PositionFinalLimited = DeltaTime;
9235 }
9236
9237 L4_MABX_B.MinMax5 = PositionFinalLimited;
9238
9239 /* End of MinMax: '<S343>/MinMax5' */
9240
9241 /* Sum: '<S343>/Subtract' */
9242 L4_MABX_B.Subtract_a = L4_MABX_B.MinMax3 - L4_MABX_B.MinMax5;
9243
9244 /* Abs: '<S343>/Abs' */
9245 L4_MABX_B.Abs_m = fabs(L4_MABX_B.Subtract_a);
9246
9247 /* RelationalOperator: '<S343>/Relational Operator' incorporates:
9248 * Constant: '<S343>/MIN_VSPD_DELTA_THRESHOLD_KPH_APV'
9249 */
9250 L4_MABX_B.RelationalOperator_f = (L4_MABX_B.Abs_m >
9251 L4_MABX_P.MIN_VSPD_DELTA_THRESHOLD_KPH_AP);
9252
9253 /* Logic: '<S349>/Logical Operator3' incorporates:
9254 * Constant: '<S343>/CPV'
9255 */
9256 L4_MABX_B.LogicalOperator3_o = !L4_MABX_P.CPV_Value_a;
9257
9258 /* UnitDelay: '<S349>/Unit_Delay' */
9259 L4_MABX_B.Unit_Delay_ag = L4_MABX_DW.Unit_Delay_DSTATE_ko;
9260
9261 /* Logic: '<S349>/Logical Operator' */
9262 L4_MABX_B.LogicalOperator_ob = (L4_MABX_B.LogicalOperator3_o &&
9263 L4_MABX_B.Unit_Delay_ag);
9264
9265 /* Logic: '<S349>/Logical Operator1' */
9266 L4_MABX_B.LogicalOperator1_p = (L4_MABX_B.LogicalOperator1_ja ||
9267 L4_MABX_B.LogicalOperator_ob);
9268
9269 /* Logic: '<S343>/Logical Operator2' */
9270 L4_MABX_B.f_vspd_min_delta_greater_than_t = (L4_MABX_B.RelationalOperator_f &&
9271 L4_MABX_B.LogicalOperator1_p);
9272
9273 /* MinMax: '<S343>/MinMax4' */
9274 PositionFinalLimited = L4_MABX_B.Vehicle_speed_vector_kph[0];
9275 for (i = 0; i < 32; i++) {
9276 Time56 = L4_MABX_B.Vehicle_speed_vector_kph[i + 1];
9277 if (!((PositionFinalLimited > Time56) || rtIsNaN(Time56))) {
9278 PositionFinalLimited = Time56;
9279 }
9280 }
9281
9282 L4_MABX_B.MinMax4 = PositionFinalLimited;
9283
9284 /* End of MinMax: '<S343>/MinMax4' */
9285
9286 /* MinMax: '<S343>/MinMax6' */
9287 DeltaTime = L4_MABX_B.If_Then_Else_og.Switch;
9288 PositionFinalLimited = L4_MABX_B.VSPD_TARGET_KPH_APV_gu;
9289 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9290 PositionFinalLimited = DeltaTime;
9291 }
9292
9293 L4_MABX_B.MinMax6_j = PositionFinalLimited;
9294
9295 /* End of MinMax: '<S343>/MinMax6' */
9296
9297 /* Sum: '<S343>/Subtract1' */
9298 L4_MABX_B.Subtract1_c = L4_MABX_B.MinMax4 - L4_MABX_B.MinMax6_j;
9299
9300 /* Abs: '<S343>/Abs1' */
9301 L4_MABX_B.Abs1_h5 = fabs(L4_MABX_B.Subtract1_c);
9302
9303 /* RelationalOperator: '<S343>/Relational Operator1' incorporates:
9304 * Constant: '<S343>/MAX_VSPD_DELTA_THRESHOLD_KPH_APV'
9305 */
9306 L4_MABX_B.RelationalOperator1_g = (L4_MABX_B.Abs1_h5 >
9307 L4_MABX_P.MAX_VSPD_DELTA_THRESHOLD_KPH_AP);
9308
9309 /* Logic: '<S343>/Logical Operator1' */
9310 L4_MABX_B.f_vspd_max_delta_greater_than_t = (L4_MABX_B.RelationalOperator1_g &&
9311 L4_MABX_B.LogicalOperator1_p);
9312
9313 /* MinMax: '<S343>/MinMax8' */
9314 PositionFinalLimited = L4_MABX_B.AccelerationVector[0];
9315 for (i = 0; i < 32; i++) {
9316 Time56 = L4_MABX_B.AccelerationVector[i + 1];
9317 if (!((PositionFinalLimited > Time56) || rtIsNaN(Time56))) {
9318 PositionFinalLimited = Time56;
9319 }
9320 }
9321
9322 L4_MABX_B.MinMax8 = PositionFinalLimited;
9323
9324 /* End of MinMax: '<S343>/MinMax8' */
9325
9326 /* RelationalOperator: '<S343>/Relational Operator2' incorporates:
9327 * Constant: '<S343>/ACCEL_RATE_ABS_MAX_THRESHOLD_MS2_APV'
9328 */
9329 L4_MABX_B.f_accel_rate_greater_than_thres = (L4_MABX_B.MinMax8 >
9330 L4_MABX_P.ACCEL_RATE_ABS_MAX_THRESHOLD_MS);
9331
9332 /* MinMax: '<S343>/MinMax7' */
9333 PositionFinalLimited = L4_MABX_B.AccelerationVector[0];
9334 for (i = 0; i < 32; i++) {
9335 Time56 = L4_MABX_B.AccelerationVector[i + 1];
9336 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9337 PositionFinalLimited = Time56;
9338 }
9339 }
9340
9341 L4_MABX_B.MinMax7 = PositionFinalLimited;
9342
9343 /* End of MinMax: '<S343>/MinMax7' */
9344
9345 /* RelationalOperator: '<S343>/Relational Operator3' incorporates:
9346 * Constant: '<S343>/ACCEL_RATE_ABS_MIN_THRESHOLD_MS2_APV'
9347 */
9348 L4_MABX_B.f_decel_rate_greater_than_thres = (L4_MABX_B.MinMax7 <
9349 L4_MABX_P.ACCEL_RATE_ABS_MIN_THRESHOLD_MS);
9350
9351 /* MinMax: '<S343>/MinMax10' */
9352 PositionFinalLimited = L4_MABX_B.JerkVector[0];
9353 for (i = 0; i < 32; i++) {
9354 Time56 = L4_MABX_B.JerkVector[i + 1];
9355 if (!((PositionFinalLimited > Time56) || rtIsNaN(Time56))) {
9356 PositionFinalLimited = Time56;
9357 }
9358 }
9359
9360 L4_MABX_B.MinMax10 = PositionFinalLimited;
9361
9362 /* End of MinMax: '<S343>/MinMax10' */
9363
9364 /* RelationalOperator: '<S343>/Relational Operator4' incorporates:
9365 * Constant: '<S343>/JERK_RATE_ABS_MAX_THRESHOLD_MS3_APV'
9366 */
9367 L4_MABX_B.f_jerk_rate_greater_than_thresh = (L4_MABX_B.MinMax10 >
9368 L4_MABX_P.JERK_RATE_ABS_MAX_THRESHOLD_MS3);
9369
9370 /* MinMax: '<S343>/MinMax9' */
9371 PositionFinalLimited = L4_MABX_B.JerkVector[0];
9372 for (i = 0; i < 32; i++) {
9373 Time56 = L4_MABX_B.JerkVector[i + 1];
9374 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9375 PositionFinalLimited = Time56;
9376 }
9377 }
9378
9379 L4_MABX_B.MinMax9 = PositionFinalLimited;
9380
9381 /* End of MinMax: '<S343>/MinMax9' */
9382
9383 /* RelationalOperator: '<S343>/Relational Operator5' incorporates:
9384 * Constant: '<S343>/JERK_RATE_ABS_MIN_THRESHOLD_MS3_APV'
9385 */
9386 L4_MABX_B.f_jerk_rate_greater_than_thre_n = (L4_MABX_B.MinMax9 <
9387 L4_MABX_P.JERK_RATE_ABS_MIN_THRESHOLD_MS3);
9388
9389 /* Sum: '<S343>/Subtract2' */
9390 L4_MABX_B.Subtract2 = L4_MABX_B.Distance_to_achieve_speed_targe -
9391 L4_MABX_B.PositionVector[32];
9392
9393 /* Abs: '<S343>/Abs2' */
9394 L4_MABX_B.Abs2 = fabs(L4_MABX_B.Subtract2);
9395
9396 /* RelationalOperator: '<S343>/Relational Operator6' incorporates:
9397 * Constant: '<S343>/MAX_DISTANCE_DELTA_THRESHOLD_M_APV'
9398 */
9399 L4_MABX_B.RelationalOperator6_i = (L4_MABX_B.Abs2 >
9400 L4_MABX_P.MAX_DISTANCE_DELTA_THRESHOLD_M_);
9401
9402 /* Logic: '<S343>/Logical Operator3' */
9403 L4_MABX_B.f_distance_max_delta_greater_th = (L4_MABX_B.RelationalOperator6_i &&
9404 L4_MABX_B.LogicalOperator1_p);
9405
9406 /* Logic: '<S343>/Logical Operator4' */
9407 L4_MABX_B.F_Inhibit_sigmoid_vector_shapin =
9408 (L4_MABX_B.f_vspd_output_less_than_zero ||
9409 L4_MABX_B.f_vspd_min_delta_greater_than_t ||
9410 L4_MABX_B.f_vspd_max_delta_greater_than_t ||
9411 L4_MABX_B.f_accel_rate_greater_than_thres ||
9412 L4_MABX_B.f_decel_rate_greater_than_thres ||
9413 L4_MABX_B.f_jerk_rate_greater_than_thresh ||
9414 L4_MABX_B.f_jerk_rate_greater_than_thre_n ||
9415 L4_MABX_B.f_distance_max_delta_greater_th);
9416
9417 /* Logic: '<S81>/Logical Operator' */
9418 L4_MABX_B.LogicalOperator_n = !L4_MABX_B.F_Inhibit_sigmoid_vector_shapin;
9419
9420 /* Logic: '<S81>/Logical Operator2' */
9421 L4_MABX_B.LogicalOperator2_ft = (L4_MABX_B.Compare_jr &&
9422 L4_MABX_B.LogicalOperator_n);
9423
9424 /* RelationalOperator: '<S344>/Relational Operator3' incorporates:
9425 * Constant: '<S344>/CPV1'
9426 */
9427 L4_MABX_B.RelationalOperator3_k = (L4_MABX_B.Saturation5 <
9428 L4_MABX_P.CPV1_Value_i);
9429
9430 /* RelationalOperator: '<S344>/Relational Operator1' incorporates:
9431 * Constant: '<S331>/MIN_VSPD_SIGMOID_INITIAL_KPH_APV'
9432 */
9433 L4_MABX_B.RelationalOperator1_h = (L4_MABX_B.If_Then_Else_og.Switch <
9434 L4_MABX_P.MIN_VSPD_SIGMOID_INITIAL_KPH_AP);
9435
9436 /* Logic: '<S344>/Logical Operator' */
9437 L4_MABX_B.LogicalOperator_da = (L4_MABX_B.RelationalOperator3_k ||
9438 L4_MABX_B.RelationalOperator1_h);
9439
9440 /* RelationalOperator: '<S344>/Relational Operator2' incorporates:
9441 * Constant: '<S331>/MIN_VSPD_SIGMOID_FINAL_KPH_APV'
9442 */
9443 L4_MABX_B.RelationalOperator2_g = (L4_MABX_B.VSPD_TARGET_KPH_APV_gu <
9444 L4_MABX_P.MIN_VSPD_SIGMOID_FINAL_KPH_APV_);
9445
9446 /* Logic: '<S344>/Logical Operator2' */
9447 L4_MABX_B.F_set_max_distance_accumulated = (L4_MABX_B.LogicalOperator_da &&
9448 L4_MABX_B.RelationalOperator2_g);
9449
9450 /* UnitDelay: '<S358>/FixPt Unit Delay2' */
9451 L4_MABX_B.FixPtUnitDelay2_o = L4_MABX_DW.FixPtUnitDelay2_DSTATE_fh;
9452
9453 /* Logic: '<S358>/FixPt Logical Operator' */
9454 L4_MABX_B.FixPtLogicalOperator = (uint8_T)(L4_MABX_B.LogicalOperator1_ja ||
9455 (L4_MABX_B.FixPtUnitDelay2_o != 0));
9456
9457 /* UnitDelay: '<S358>/FixPt Unit Delay1' */
9458 L4_MABX_B.Xold_p = L4_MABX_DW.FixPtUnitDelay1_DSTATE_li;
9459
9460 /* Switch: '<S358>/Init' incorporates:
9461 * Constant: '<S353>/CPV'
9462 */
9463 if (L4_MABX_B.FixPtLogicalOperator != 0) {
9464 L4_MABX_B.Init_h = L4_MABX_P.CPV_Value_h;
9465 } else {
9466 L4_MABX_B.Init_h = L4_MABX_B.Xold_p;
9467 }
9468
9469 /* End of Switch: '<S358>/Init' */
9470
9471 /* Gain: '<S344>/Gain1' */
9472 L4_MABX_B.Gain1_c = L4_MABX_P.Gain1_Gain_k * L4_MABX_B.Saturation5;
9473
9474 /* DigitalClock: '<S356>/Digital Clock' */
9475 L4_MABX_B.DigitalClock_f = L4_MABX_M->Timing.t[0];
9476
9477 /* UnitDelay: '<S356>/Unit_Delay' */
9478 L4_MABX_B.Unit_Delay_e = L4_MABX_DW.Unit_Delay_DSTATE_ps;
9479
9480 /* Sum: '<S356>/Subtract' */
9481 L4_MABX_B.Subtract_b = L4_MABX_B.DigitalClock_f - L4_MABX_B.Unit_Delay_e;
9482
9483 /* Product: '<S353>/Product1' incorporates:
9484 * Constant: '<S352>/CPV1'
9485 */
9486 L4_MABX_B.Product1_a = L4_MABX_P.CPV1_Value_e * L4_MABX_B.Gain1_c *
9487 L4_MABX_B.Subtract_b;
9488
9489 /* Sum: '<S353>/Add' */
9490 L4_MABX_B.Add_h = L4_MABX_B.Init_h + L4_MABX_B.Product1_a;
9491
9492 /* MinMax: '<S353>/MinMax' */
9493 DeltaTime = L4_MABX_B.Distance_to_achieve_speed_targe;
9494 PositionFinalLimited = L4_MABX_B.Add_h;
9495 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9496 PositionFinalLimited = DeltaTime;
9497 }
9498
9499 L4_MABX_B.MinMax_aw = PositionFinalLimited;
9500
9501 /* End of MinMax: '<S353>/MinMax' */
9502
9503 /* Outputs for Atomic SubSystem: '<S353>/If_Then_Else' */
9504 L4_MABX_If_Then_Else_g(L4_MABX_B.F_set_max_distance_accumulated,
9505 L4_MABX_B.Distance_to_achieve_speed_targe, L4_MABX_B.MinMax_aw,
9506 &L4_MABX_B.If_Then_Else_gf);
9507
9508 /* End of Outputs for SubSystem: '<S353>/If_Then_Else' */
9509
9510 /* RelationalOperator: '<S344>/Relational Operator' */
9511 L4_MABX_B.RelationalOperator_l = (L4_MABX_B.If_Then_Else_gf.Switch ==
9512 L4_MABX_B.Distance_to_achieve_speed_targe);
9513
9514 /* S-Function (sfix_look1_dyn): '<S344>/Lookup Table Dynamic' */
9515 /* Dynamic Look-Up Table Block: '<S344>/Lookup Table Dynamic'
9516 * Input0 Data Type: Floating Point real_T
9517 * Input1 Data Type: Floating Point real_T
9518 * Input2 Data Type: Floating Point real_T
9519 * Output0 Data Type: Floating Point real_T
9520 * Lookup Method: Linear_Endpoint
9521 *
9522 */
9523 LookUp_real_T_real_T( &(L4_MABX_B.LookupTableDynamic),
9524 &L4_MABX_B.Vehicle_speed_vector_kph[0],
9525 L4_MABX_B.If_Then_Else_gf.Switch,
9526 &L4_MABX_B.PositionVector[0], 32U);
9527
9528 /* Outputs for Atomic SubSystem: '<S344>/If_Then_Else' */
9529 L4_MABX_If_Then_Else_g(L4_MABX_B.RelationalOperator_l,
9530 L4_MABX_B.VSPD_TARGET_KPH_APV_gu, L4_MABX_B.LookupTableDynamic,
9531 &L4_MABX_B.If_Then_Else_jh);
9532
9533 /* End of Outputs for SubSystem: '<S344>/If_Then_Else' */
9534
9535 /* UnitDelay: '<S336>/Delay Input1' */
9536 L4_MABX_B.Uk1_k[0] = L4_MABX_DW.DelayInput1_DSTATE_f[0];
9537 L4_MABX_B.Uk1_k[1] = L4_MABX_DW.DelayInput1_DSTATE_f[1];
9538
9539 /* RelationalOperator: '<S336>/FixPt Relational Operator' */
9540 L4_MABX_B.FixPtRelationalOperator_p[0] =
9541 (L4_MABX_B.Distance_to_achieve_speed_targe != L4_MABX_B.Uk1_k[0]);
9542 L4_MABX_B.FixPtRelationalOperator_p[1] = (L4_MABX_B.Vehicle_speed_target_o !=
9543 L4_MABX_B.Uk1_k[1]);
9544
9545 /* Logic: '<S330>/Logical Operator' */
9546 L4_MABX_B.LogicalOperator_gb = (L4_MABX_B.FixPtRelationalOperator_p[0] ||
9547 L4_MABX_B.FixPtRelationalOperator_p[1]);
9548
9549 /* UnitDelay: '<S338>/Unit_Delay' */
9550 L4_MABX_B.Unit_Delay_ls = L4_MABX_DW.Unit_Delay_DSTATE_la;
9551
9552 /* Logic: '<S338>/Logical Operator1' */
9553 L4_MABX_B.LogicalOperator1_lp = (L4_MABX_B.LogicalOperator_gb ||
9554 L4_MABX_B.Unit_Delay_ls);
9555
9556 /* UnitDelay: '<S342>/FixPt Unit Delay2' */
9557 L4_MABX_B.FixPtUnitDelay2_n = L4_MABX_DW.FixPtUnitDelay2_DSTATE_c;
9558
9559 /* UnitDelay: '<S342>/FixPt Unit Delay1' */
9560 L4_MABX_B.Xold_o5 = L4_MABX_DW.FixPtUnitDelay1_DSTATE_e;
9561
9562 /* Switch: '<S342>/Init' */
9563 if (L4_MABX_B.FixPtUnitDelay2_n != 0) {
9564 L4_MABX_B.Init_p = L4_MABX_B.Vehicle_speed_target_o;
9565 } else {
9566 L4_MABX_B.Init_p = L4_MABX_B.Xold_o5;
9567 }
9568
9569 /* End of Switch: '<S342>/Init' */
9570
9571 /* UnitDelay: '<S337>/Unit_Delay' */
9572 L4_MABX_B.Vehicle_speed_target_c = L4_MABX_DW.Unit_Delay_1_DSTATE_j;
9573 L4_MABX_B.Vehicle_speed = L4_MABX_DW.Unit_Delay_2_DSTATE_e;
9574 L4_MABX_B.Distance_m = L4_MABX_DW.Unit_Delay_3_DSTATE_j;
9575
9576 /* Outputs for Atomic SubSystem: '<S337>/If_Then_Else' */
9577 L4_MABX_If_Then_Else_m(L4_MABX_B.LogicalOperator_gb,
9578 L4_MABX_B.Vehicle_speed_target_o, L4_MABX_B.SFunction1_o1_in,
9579 L4_MABX_B.Distance_to_achieve_speed_targe, L4_MABX_B.Vehicle_speed_target_c,
9580 L4_MABX_B.Vehicle_speed, L4_MABX_B.Distance_m, &L4_MABX_B.If_Then_Else_mm);
9581
9582 /* End of Outputs for SubSystem: '<S337>/If_Then_Else' */
9583
9584 /* Sum: '<S337>/Subtract' */
9585 L4_MABX_B.err = L4_MABX_B.If_Then_Else_mm.Vehicle_speed -
9586 L4_MABX_B.If_Then_Else_mm.Vehicle_speed_target;
9587
9588 /* Abs: '<S337>/Abs2' */
9589 L4_MABX_B.err_abs = fabs(L4_MABX_B.err);
9590
9591 /* Gain: '<S337>/Gain2' */
9592 L4_MABX_B.Gain2_k = L4_MABX_P.Gain2_Gain_l *
9593 L4_MABX_B.If_Then_Else_mm.Vehicle_speed;
9594
9595 /* Saturate: '<S337>/Saturation4' */
9596 DeltaTime = L4_MABX_B.Gain2_k;
9597 Time56 = L4_MABX_P.Saturation4_LowerSat_e;
9598 PositionFinalLimited = L4_MABX_P.Saturation4_UpperSat_a;
9599 if (DeltaTime > PositionFinalLimited) {
9600 L4_MABX_B.Saturation4 = PositionFinalLimited;
9601 } else if (DeltaTime < Time56) {
9602 L4_MABX_B.Saturation4 = Time56;
9603 } else {
9604 L4_MABX_B.Saturation4 = DeltaTime;
9605 }
9606
9607 /* End of Saturate: '<S337>/Saturation4' */
9608
9609 /* Product: '<S337>/Divide2' */
9610 L4_MABX_B.time_to_target_vspd_secs = L4_MABX_B.If_Then_Else_mm.Distance_m /
9611 L4_MABX_B.Saturation4;
9612
9613 /* DigitalClock: '<S335>/Digital Clock' */
9614 L4_MABX_B.DigitalClock_p = L4_MABX_M->Timing.t[0];
9615
9616 /* UnitDelay: '<S335>/Unit_Delay' */
9617 L4_MABX_B.Unit_Delay_bb = L4_MABX_DW.Unit_Delay_DSTATE_f;
9618
9619 /* Sum: '<S335>/Subtract' */
9620 L4_MABX_B.Subtract_g = L4_MABX_B.DigitalClock_p - L4_MABX_B.Unit_Delay_bb;
9621
9622 /* MinMax: '<S337>/MinMax3' */
9623 DeltaTime = L4_MABX_B.time_to_target_vspd_secs;
9624 PositionFinalLimited = L4_MABX_B.Subtract_g;
9625 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9626 PositionFinalLimited = DeltaTime;
9627 }
9628
9629 L4_MABX_B.MinMax3_n = PositionFinalLimited;
9630
9631 /* End of MinMax: '<S337>/MinMax3' */
9632
9633 /* Saturate: '<S337>/Saturation1' */
9634 DeltaTime = L4_MABX_B.MinMax3_n;
9635 Time56 = L4_MABX_P.Saturation1_LowerSat_o;
9636 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat_j;
9637 if (DeltaTime > PositionFinalLimited) {
9638 L4_MABX_B.Saturation1_e = PositionFinalLimited;
9639 } else if (DeltaTime < Time56) {
9640 L4_MABX_B.Saturation1_e = Time56;
9641 } else {
9642 L4_MABX_B.Saturation1_e = DeltaTime;
9643 }
9644
9645 /* End of Saturate: '<S337>/Saturation1' */
9646
9647 /* Product: '<S337>/Divide' */
9648 L4_MABX_B.Divide_e = L4_MABX_B.err_abs / L4_MABX_B.Saturation1_e;
9649
9650 /* Abs: '<S338>/Abs' */
9651 L4_MABX_B.Abs_ma = fabs(L4_MABX_B.Divide_e);
9652
9653 /* Product: '<S338>/Product1' */
9654 L4_MABX_B.Product1_iv = L4_MABX_B.Abs_ma * L4_MABX_B.Subtract_g;
9655
9656 /* Sum: '<S338>/Add1' */
9657 L4_MABX_B.Add1_bf = L4_MABX_B.Init_p + L4_MABX_B.Product1_iv;
9658
9659 /* MinMax: '<S338>/MinMax2' */
9660 DeltaTime = L4_MABX_B.Vehicle_speed_target_o;
9661 PositionFinalLimited = L4_MABX_B.Add1_bf;
9662 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9663 PositionFinalLimited = DeltaTime;
9664 }
9665
9666 L4_MABX_B.MinMax2_c = PositionFinalLimited;
9667
9668 /* End of MinMax: '<S338>/MinMax2' */
9669
9670 /* Abs: '<S338>/Abs1' */
9671 L4_MABX_B.Abs1_f = fabs(L4_MABX_B.Divide_e);
9672
9673 /* Product: '<S338>/Product2' */
9674 L4_MABX_B.Product2_m1 = L4_MABX_B.Subtract_g * L4_MABX_B.Abs1_f;
9675
9676 /* Sum: '<S338>/Subtract1' */
9677 L4_MABX_B.Subtract1_h2 = L4_MABX_B.Init_p - L4_MABX_B.Product2_m1;
9678
9679 /* MinMax: '<S338>/MinMax1' */
9680 DeltaTime = L4_MABX_B.MinMax2_c;
9681 PositionFinalLimited = L4_MABX_B.Subtract1_h2;
9682 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9683 PositionFinalLimited = DeltaTime;
9684 }
9685
9686 L4_MABX_B.MinMax1_p = PositionFinalLimited;
9687
9688 /* End of MinMax: '<S338>/MinMax1' */
9689
9690 /* Outputs for Atomic SubSystem: '<S338>/If_Then_Else' */
9691 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_lp, L4_MABX_B.SFunction1_o1_in,
9692 L4_MABX_B.MinMax1_p, &L4_MABX_B.If_Then_Else_pz);
9693
9694 /* End of Outputs for SubSystem: '<S338>/If_Then_Else' */
9695
9696 /* Outputs for Atomic SubSystem: '<S81>/If_Then_Else' */
9697 L4_MABX_If_Then_Else_g(L4_MABX_B.LogicalOperator2_ft,
9698 L4_MABX_B.If_Then_Else_jh.Switch, L4_MABX_B.If_Then_Else_pz.Switch,
9699 &L4_MABX_B.If_Then_Else_ji);
9700
9701 /* End of Outputs for SubSystem: '<S81>/If_Then_Else' */
9702
9703 /* MinMax: '<S81>/MinMax' */
9704 DeltaTime = L4_MABX_B.If_Then_Else_m4.Switch;
9705 PositionFinalLimited = L4_MABX_B.If_Then_Else_bf.Switch;
9706 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9707 PositionFinalLimited = DeltaTime;
9708 }
9709
9710 Time56 = L4_MABX_B.Vehicle_speed_abs_max;
9711 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9712 PositionFinalLimited = Time56;
9713 }
9714
9715 Time56 = L4_MABX_B.If_Then_Else_ji.Switch;
9716 if (!((PositionFinalLimited < Time56) || rtIsNaN(Time56))) {
9717 PositionFinalLimited = Time56;
9718 }
9719
9720 L4_MABX_B.MinMax_o = PositionFinalLimited;
9721
9722 /* End of MinMax: '<S81>/MinMax' */
9723
9724 /* Saturate: '<S81>/Saturation8' */
9725 DeltaTime = L4_MABX_B.MinMax_o;
9726 Time56 = L4_MABX_P.Saturation8_LowerSat;
9727 PositionFinalLimited = L4_MABX_P.Saturation8_UpperSat;
9728 if (DeltaTime > PositionFinalLimited) {
9729 L4_MABX_B.Vehicle_speed_target_n = PositionFinalLimited;
9730 } else if (DeltaTime < Time56) {
9731 L4_MABX_B.Vehicle_speed_target_n = Time56;
9732 } else {
9733 L4_MABX_B.Vehicle_speed_target_n = DeltaTime;
9734 }
9735
9736 /* End of Saturate: '<S81>/Saturation8' */
9737
9738 /* Lookup_n-D: '<S194>/2D_Lookup_Table' */
9739 L4_MABX_B.uD_Lookup_Table_l = look2_binlcapw(0.0,
9740 L4_MABX_B.SPN1760_GrossCombinationVehicle, BRK_GOV_FF_DECEL_RATE_STEP_MPV,
9741 BRK_GOV_FF_MASS_STEP_MPV, BRK_GOV_FF_PRESS_KPA_DATA_MPV,
9742 L4_MABX_P.uD_Lookup_Table_maxIndex_e, 16U);
9743
9744 /* Product: '<S100>/Divide' */
9745 L4_MABX_B.Divide_f = L4_MABX_B.uD_Lookup_Table_l /
9746 L4_MABX_B.Primary_brake_circuit_pressur_n;
9747
9748 /* Gain: '<S100>/Gain1' */
9749 L4_MABX_B.Gain1_l = L4_MABX_P.Gain1_Gain_o * L4_MABX_B.Divide_f;
9750
9751 /* Saturate: '<S100>/Saturation1' */
9752 DeltaTime = L4_MABX_B.Gain1_l;
9753 Time56 = L4_MABX_P.Saturation1_LowerSat_n;
9754 PositionFinalLimited = L4_MABX_P.Saturation1_UpperSat_l;
9755 if (DeltaTime > PositionFinalLimited) {
9756 L4_MABX_B.Brake_appl_percent_to_achieve_d = PositionFinalLimited;
9757 } else if (DeltaTime < Time56) {
9758 L4_MABX_B.Brake_appl_percent_to_achieve_d = Time56;
9759 } else {
9760 L4_MABX_B.Brake_appl_percent_to_achieve_d = DeltaTime;
9761 }
9762
9763 /* End of Saturate: '<S100>/Saturation1' */
9764
9765 /* Saturate: '<S81>/Saturation2' incorporates:
9766 * Constant: '<S81>/ACCEL_LIM_MS2_APV'
9767 */
9768 DeltaTime = L4_MABX_P.ACCEL_LIM_MS2_APV_Value;
9769 Time56 = L4_MABX_P.Saturation2_LowerSat_l;
9770 PositionFinalLimited = L4_MABX_P.Saturation2_UpperSat_a;
9771 if (DeltaTime > PositionFinalLimited) {
9772 L4_MABX_B.ACCEL_LIM_MS2_APV_b = PositionFinalLimited;
9773 } else if (DeltaTime < Time56) {
9774 L4_MABX_B.ACCEL_LIM_MS2_APV_b = Time56;
9775 } else {
9776 L4_MABX_B.ACCEL_LIM_MS2_APV_b = DeltaTime;
9777 }
9778
9779 /* End of Saturate: '<S81>/Saturation2' */
9780
9781 /* Lookup_n-D: '<S195>/2D_Lookup_Table' */
9782 L4_MABX_B.uD_Lookup_Table_i = look2_binlcapw(L4_MABX_B.ACCEL_LIM_MS2_APV_b,
9783 L4_MABX_B.SPN1760_GrossCombinationVehicle, BRK_GOV_FF_DECEL_RATE_STEP_MPV,
9784 BRK_GOV_FF_MASS_STEP_MPV, BRK_GOV_FF_PRESS_KPA_DATA_MPV,
9785 L4_MABX_P.uD_Lookup_Table_maxIndex_n, 16U);
9786
9787 /* Product: '<S100>/Divide1' */
9788 L4_MABX_B.Divide1_f = L4_MABX_B.uD_Lookup_Table_i /
9789 L4_MABX_B.Primary_brake_circuit_pressur_n;
9790
9791 /* Gain: '<S100>/Gain2' */
9792 L4_MABX_B.Gain2_e = L4_MABX_P.Gain2_Gain_b * L4_MABX_B.Divide1_f;
9793
9794 /* Saturate: '<S100>/Saturation2' */
9795 DeltaTime = L4_MABX_B.Gain2_e;
9796 Time56 = L4_MABX_P.Saturation2_LowerSat_o;
9797 PositionFinalLimited = L4_MABX_P.Saturation2_UpperSat_b;
9798 if (DeltaTime > PositionFinalLimited) {
9799 L4_MABX_B.Brake_appl_percent_for_maximum_ = PositionFinalLimited;
9800 } else if (DeltaTime < Time56) {
9801 L4_MABX_B.Brake_appl_percent_for_maximum_ = Time56;
9802 } else {
9803 L4_MABX_B.Brake_appl_percent_for_maximum_ = DeltaTime;
9804 }
9805
9806 /* End of Saturate: '<S100>/Saturation2' */
9807
9808 /* DataTypeConversion: '<S77>/Data Type Conversion2' */
9809 L4_MABX_B.DataTypeConversion2_l3 = L4_MABX_B.SPN1760_GrossCombinationVehicle;
9810
9811 /* Outputs for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' incorporates:
9812 * EnablePort: '<S97>/Enable'
9813 */
9814 if (L4_MABX_B.F_Brake_control_active) {
9815 if (!L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba) {
9816 /* InitializeConditions for UnitDelay: '<S140>/Unit_Delay' */
9817 L4_MABX_DW.Unit_Delay_DSTATE_eu = L4_MABX_P.Unit_Delay_InitialCondition_f;
9818
9819 /* InitializeConditions for UnitDelay: '<S147>/Unit_Delay' */
9820 L4_MABX_DW.Unit_Delay_DSTATE_nw = L4_MABX_P.Unit_Delay_InitialCondition_jb;
9821
9822 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay1' */
9823 L4_MABX_DW.Unit_Delay1_DSTATE_f = L4_MABX_P.Unit_Delay1_InitialCondition_p;
9824
9825 /* InitializeConditions for UnitDelay: '<S168>/Unit_Delay' */
9826 L4_MABX_DW.Unit_Delay_DSTATE_g4 = L4_MABX_P.Unit_Delay_InitialCondition_lq;
9827
9828 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay2' */
9829 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o4 =
9830 L4_MABX_P.FixPtUnitDelay2_InitialCondit_p;
9831
9832 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay1' */
9833 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2 =
9834 L4_MABX_P.FixPtUnitDelay1_InitialCondit_b;
9835
9836 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay2' */
9837 L4_MABX_DW.Unit_Delay2_DSTATE_c = L4_MABX_P.Unit_Delay2_InitialCondition_b;
9838
9839 /* InitializeConditions for UnitDelay: '<S139>/Unit_Delay' */
9840 L4_MABX_DW.Unit_Delay_DSTATE_h = L4_MABX_P.Unit_Delay_InitialCondition_h;
9841 L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba = true;
9842 }
9843
9844 /* Lookup_n-D: '<S141>/1D_Lookup_Table' */
9845 L4_MABX_B.uD_Lookup_Table_f = look1_binlcapw
9846 (L4_MABX_B.DataTypeConversion2_l3, BRK_DEM_MASS_STEP_MPV,
9847 BRK_DEM_KP_DATA_MPV, 7U);
9848
9849 /* Lookup_n-D: '<S142>/1D_Lookup_Table' */
9850 L4_MABX_B.uD_Lookup_Table_p = look1_binlcapw
9851 (L4_MABX_B.DataTypeConversion2_l3, BRK_DEM_MASS_STEP_MPV,
9852 BRK_DEM_KI_DATA_MPV, 7U);
9853
9854 /* Lookup_n-D: '<S143>/1D_Lookup_Table' */
9855 L4_MABX_B.uD_Lookup_Table_o5 = look1_binlcapw
9856 (L4_MABX_B.DataTypeConversion2_l3, BRK_DEM_MASS_STEP_MPV,
9857 BRK_DEM_KD_DATA_MPV, 7U);
9858
9859 /* Abs: '<S144>/Abs' */
9860 L4_MABX_B.Abs_k = fabs(L4_MABX_B.uD_Lookup_Table_p);
9861
9862 /* Abs: '<S144>/Abs1' */
9863 L4_MABX_B.Abs1_eg = fabs(L4_MABX_B.uD_Lookup_Table_o5);
9864
9865 /* DigitalClock: '<S140>/Digital Clock' */
9866 L4_MABX_B.DigitalClock_n = L4_MABX_M->Timing.t[0];
9867
9868 /* UnitDelay: '<S140>/Unit_Delay' */
9869 L4_MABX_B.Unit_Delay_ko = L4_MABX_DW.Unit_Delay_DSTATE_eu;
9870
9871 /* Sum: '<S140>/Subtract' */
9872 L4_MABX_B.Subtract_ac = L4_MABX_B.DigitalClock_n - L4_MABX_B.Unit_Delay_ko;
9873
9874 /* UnitDelay: '<S147>/Unit_Delay' */
9875 L4_MABX_B.Unit_Delay_m1 = L4_MABX_DW.Unit_Delay_DSTATE_nw;
9876
9877 /* Logic: '<S147>/Logical Operator1' incorporates:
9878 * Constant: '<S97>/CPV2'
9879 */
9880 L4_MABX_B.LogicalOperator1_pf = (L4_MABX_B.Unit_Delay_m1 ||
9881 L4_MABX_P.CPV2_Value_a);
9882
9883 /* UnitDelay: '<S167>/Unit_Delay1' */
9884 L4_MABX_B.Unit_Delay1_jk = L4_MABX_DW.Unit_Delay1_DSTATE_f;
9885
9886 /* Logic: '<S167>/Logical Operator' */
9887 L4_MABX_B.LogicalOperator_l = (L4_MABX_B.LogicalOperator1_pf ||
9888 L4_MABX_B.Unit_Delay1_jk);
9889
9890 /* UnitDelay: '<S168>/Unit_Delay' */
9891 L4_MABX_B.Unit_Delay_li = L4_MABX_DW.Unit_Delay_DSTATE_g4;
9892
9893 /* Logic: '<S168>/Logical Operator1' */
9894 L4_MABX_B.LogicalOperator1_oy = (L4_MABX_B.LogicalOperator1_pf ||
9895 L4_MABX_B.Unit_Delay_li);
9896
9897 /* UnitDelay: '<S172>/FixPt Unit Delay2' */
9898 L4_MABX_B.FixPtUnitDelay2_mf = L4_MABX_DW.FixPtUnitDelay2_DSTATE_o4;
9899
9900 /* UnitDelay: '<S172>/FixPt Unit Delay1' */
9901 L4_MABX_B.Xold_c = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2;
9902
9903 /* Switch: '<S172>/Init' */
9904 if (L4_MABX_B.FixPtUnitDelay2_mf != 0) {
9905 L4_MABX_B.Init_c = L4_MABX_B.Vehicle_speed_target_n;
9906 } else {
9907 L4_MABX_B.Init_c = L4_MABX_B.Xold_c;
9908 }
9909
9910 /* End of Switch: '<S172>/Init' */
9911
9912 /* Abs: '<S168>/Abs' incorporates:
9913 * Constant: '<S97>/BRK_DECEL_DEM_SLEW_INC_APV'
9914 */
9915 L4_MABX_B.Abs_o = fabs(L4_MABX_P.BRK_DECEL_DEM_SLEW_INC_APV_Valu);
9916
9917 /* Product: '<S168>/Product1' */
9918 L4_MABX_B.Product1_hy = L4_MABX_B.Abs_o * L4_MABX_B.Subtract_ac;
9919
9920 /* Sum: '<S168>/Add1' */
9921 L4_MABX_B.Add1_o = L4_MABX_B.Init_c + L4_MABX_B.Product1_hy;
9922
9923 /* MinMax: '<S168>/MinMax2' */
9924 DeltaTime = L4_MABX_B.Vehicle_speed_target_n;
9925 PositionFinalLimited = L4_MABX_B.Add1_o;
9926 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9927 PositionFinalLimited = DeltaTime;
9928 }
9929
9930 L4_MABX_B.MinMax2_p = PositionFinalLimited;
9931
9932 /* End of MinMax: '<S168>/MinMax2' */
9933
9934 /* Abs: '<S168>/Abs1' incorporates:
9935 * Constant: '<S97>/BRK_DECEL_DEM_SLEW_DEC_APV'
9936 */
9937 L4_MABX_B.Abs1_g = fabs(L4_MABX_P.BRK_DECEL_DEM_SLEW_DEC_APV_Valu);
9938
9939 /* Product: '<S168>/Product2' */
9940 L4_MABX_B.Product2_fh = L4_MABX_B.Subtract_ac * L4_MABX_B.Abs1_g;
9941
9942 /* Sum: '<S168>/Subtract1' */
9943 L4_MABX_B.Subtract1_f = L4_MABX_B.Init_c - L4_MABX_B.Product2_fh;
9944
9945 /* MinMax: '<S168>/MinMax1' */
9946 DeltaTime = L4_MABX_B.MinMax2_p;
9947 PositionFinalLimited = L4_MABX_B.Subtract1_f;
9948 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9949 PositionFinalLimited = DeltaTime;
9950 }
9951
9952 L4_MABX_B.MinMax1_hl = PositionFinalLimited;
9953
9954 /* End of MinMax: '<S168>/MinMax1' */
9955
9956 /* Outputs for Atomic SubSystem: '<S168>/If_Then_Else' */
9957 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_oy,
9958 L4_MABX_B.DataTypeConversion5_o, L4_MABX_B.MinMax1_hl,
9959 &L4_MABX_B.If_Then_Else_iy);
9960
9961 /* End of Outputs for SubSystem: '<S168>/If_Then_Else' */
9962
9963 /* Sum: '<S145>/Subtract' */
9964 L4_MABX_B.Subtract_jh = L4_MABX_B.If_Then_Else_iy.Switch -
9965 L4_MABX_B.DataTypeConversion5_o;
9966
9967 /* MinMax: '<S167>/MinMax1' incorporates:
9968 * Constant: '<S97>/BRK_DECEL_DEM_T_FILT_CTRL_ERROR_APV'
9969 */
9970 DeltaTime = L4_MABX_B.Subtract_ac;
9971 PositionFinalLimited = L4_MABX_P.BRK_DECEL_DEM_T_FILT_CTRL_ERROR;
9972 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
9973 PositionFinalLimited = DeltaTime;
9974 }
9975
9976 L4_MABX_B.MinMax1_jg = PositionFinalLimited;
9977
9978 /* End of MinMax: '<S167>/MinMax1' */
9979
9980 /* Saturate: '<S167>/Saturation' */
9981 DeltaTime = L4_MABX_B.MinMax1_jg;
9982 Time56 = L4_MABX_P.Saturation_LowerSat_g;
9983 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_o;
9984 if (DeltaTime > PositionFinalLimited) {
9985 L4_MABX_B.Saturation_mo = PositionFinalLimited;
9986 } else if (DeltaTime < Time56) {
9987 L4_MABX_B.Saturation_mo = Time56;
9988 } else {
9989 L4_MABX_B.Saturation_mo = DeltaTime;
9990 }
9991
9992 /* End of Saturate: '<S167>/Saturation' */
9993
9994 /* Product: '<S167>/Divide' */
9995 L4_MABX_B.Divide_af = L4_MABX_B.Subtract_ac / L4_MABX_B.Saturation_mo;
9996
9997 /* Product: '<S167>/Product2' */
9998 L4_MABX_B.Product2_ce = L4_MABX_B.Subtract_jh * L4_MABX_B.Divide_af;
9999
10000 /* Sum: '<S167>/Subtract1' incorporates:
10001 * Constant: '<S167>/Constant1'
10002 */
10003 L4_MABX_B.Subtract1_cr = L4_MABX_P.Constant1_Value_o - L4_MABX_B.Divide_af;
10004
10005 /* UnitDelay: '<S167>/Unit_Delay2' */
10006 L4_MABX_B.Unit_Delay2_a = L4_MABX_DW.Unit_Delay2_DSTATE_c;
10007
10008 /* Product: '<S167>/Product1' */
10009 L4_MABX_B.Product1_ch = L4_MABX_B.Subtract1_cr * L4_MABX_B.Unit_Delay2_a;
10010
10011 /* Sum: '<S167>/Add1' */
10012 L4_MABX_B.Add1_hl = L4_MABX_B.Product2_ce + L4_MABX_B.Product1_ch;
10013
10014 /* Outputs for Atomic SubSystem: '<S167>/If_Then_Else' */
10015 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_l, L4_MABX_B.Subtract_jh,
10016 L4_MABX_B.Add1_hl, &L4_MABX_B.If_Then_Else_bc);
10017
10018 /* End of Outputs for SubSystem: '<S167>/If_Then_Else' */
10019
10020 /* RelationalOperator: '<S152>/Compare' incorporates:
10021 * Constant: '<S152>/Constant'
10022 */
10023 L4_MABX_B.Compare_ni = (L4_MABX_B.Abs1_eg >
10024 L4_MABX_P.CompareToConstant1_const_m);
10025
10026 /* Outputs for Enabled SubSystem: '<S144>/Calculate_D_term' */
10027
10028 /* Constant: '<S97>/BRK_DECEL_DEM_T_FILT_D_APV' */
10029 L4_MABX_Calculate_D_term(L4_MABX_B.Compare_ni, L4_MABX_B.uD_Lookup_Table_o5,
10030 L4_MABX_B.Subtract_ac, L4_MABX_B.LogicalOperator1_pf,
10031 L4_MABX_B.If_Then_Else_bc.Switch,
10032 L4_MABX_P.BRK_DECEL_DEM_T_FILT_D_APV_Valu, &L4_MABX_B.Calculate_D_term_p,
10033 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
10034
10035 /* End of Outputs for SubSystem: '<S144>/Calculate_D_term' */
10036
10037 /* Product: '<S150>/Product' */
10038 L4_MABX_B.Product_f = L4_MABX_B.uD_Lookup_Table_f *
10039 L4_MABX_B.If_Then_Else_bc.Switch;
10040
10041 /* UnitDelay: '<S139>/Unit_Delay' */
10042 L4_MABX_B.Unit_Delay_fg = L4_MABX_DW.Unit_Delay_DSTATE_h;
10043
10044 /* RelationalOperator: '<S151>/Compare' incorporates:
10045 * Constant: '<S151>/Constant'
10046 */
10047 L4_MABX_B.Compare_dl = (L4_MABX_B.Abs_k >
10048 L4_MABX_P.CompareToConstant_const_c);
10049
10050 /* Outputs for Enabled SubSystem: '<S144>/Calculate_I_term' */
10051
10052 /* Constant: '<S97>/BRK_DECEL_DEM_AW_COND_INT_APV' incorporates:
10053 * Constant: '<S97>/BRK_DECEL_DEM_AW_HYSTERESIS_APV'
10054 * Constant: '<S97>/CPV1'
10055 */
10056 L4_MABX_Calculate_I_term(L4_MABX_B.Compare_dl, L4_MABX_B.Product_f,
10057 L4_MABX_B.uD_Lookup_Table_p, L4_MABX_B.Brake_appl_percent,
10058 L4_MABX_B.If_Then_Else_bc.Switch, L4_MABX_B.LogicalOperator1_pf,
10059 L4_MABX_B.Subtract_ac, L4_MABX_B.Brake_appl_percent_to_achieve_d,
10060 L4_MABX_P.BRK_DECEL_DEM_AW_COND_INT_APV_V,
10061 L4_MABX_P.BRK_DECEL_DEM_AW_HYSTERESIS_APV, L4_MABX_P.CPV1_Value_no,
10062 L4_MABX_B.Unit_Delay_fg, &L4_MABX_B.Calculate_I_term_e,
10063 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
10064
10065 /* End of Outputs for SubSystem: '<S144>/Calculate_I_term' */
10066
10067 /* RelationalOperator: '<S170>/min_relop' incorporates:
10068 * Constant: '<S170>/min_val'
10069 * Constant: '<S97>/BRK_DECEL_DEM_SLEW_INC_APV'
10070 */
10071 L4_MABX_B.min_relop_a = (L4_MABX_P.CheckStaticLowerBound_min_d <=
10072 L4_MABX_P.BRK_DECEL_DEM_SLEW_INC_APV_Valu);
10073
10074 /* Assertion: '<S170>/Assertion' */
10075 utAssert(L4_MABX_B.min_relop_a);
10076
10077 /* Sum: '<S146>/Add' */
10078 L4_MABX_B.Add_mh = ((L4_MABX_B.Product_f +
10079 L4_MABX_B.Calculate_I_term_e.If_Then_Else.Switch) +
10080 L4_MABX_B.Calculate_D_term_p.Subtract) +
10081 L4_MABX_B.Brake_appl_percent_to_achieve_d;
10082
10083 /* RelationalOperator: '<S173>/Relational Operator1' */
10084 L4_MABX_B.RelationalOperator1_k = (L4_MABX_B.Add_mh >=
10085 L4_MABX_B.Brake_appl_percent_for_maximum_);
10086
10087 /* RelationalOperator: '<S173>/Relational Operator' incorporates:
10088 * Constant: '<S97>/CPV'
10089 */
10090 L4_MABX_B.RelationalOperator_m = (L4_MABX_B.Add_mh <= L4_MABX_P.CPV_Value_i);
10091
10092 /* Outputs for Atomic SubSystem: '<S173>/If_Then_Else1' */
10093
10094 /* Constant: '<S97>/CPV' */
10095 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_m, L4_MABX_P.CPV_Value_i,
10096 L4_MABX_B.Add_mh, &L4_MABX_B.If_Then_Else1_gx);
10097
10098 /* End of Outputs for SubSystem: '<S173>/If_Then_Else1' */
10099
10100 /* Outputs for Atomic SubSystem: '<S173>/If_Then_Else' */
10101 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_k,
10102 L4_MABX_B.Brake_appl_percent_for_maximum_,
10103 L4_MABX_B.If_Then_Else1_gx.Switch,
10104 &L4_MABX_B.If_Then_Else_fo);
10105
10106 /* End of Outputs for SubSystem: '<S173>/If_Then_Else' */
10107 } else {
10108 if (L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba) {
10109 /* Disable for Enabled SubSystem: '<S144>/Calculate_D_term' */
10110 if (L4_MABX_DW.Calculate_D_term_p.Calculate_D_term_MODE) {
10111 L4_Calculate_D_term_Disable(&L4_MABX_B.Calculate_D_term_p,
10112 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
10113 }
10114
10115 /* End of Disable for SubSystem: '<S144>/Calculate_D_term' */
10116
10117 /* Disable for Enabled SubSystem: '<S144>/Calculate_I_term' */
10118 if (L4_MABX_DW.Calculate_I_term_e.Calculate_I_term_MODE) {
10119 L4_Calculate_I_term_Disable(&L4_MABX_B.Calculate_I_term_e,
10120 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
10121 }
10122
10123 /* End of Disable for SubSystem: '<S144>/Calculate_I_term' */
10124
10125 /* Disable for Outport: '<S97>/PID_output' */
10126 L4_MABX_B.If_Then_Else_fo.Switch = L4_MABX_P.PID_output_Y0_p;
10127 L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba = false;
10128 }
10129 }
10130
10131 /* End of Outputs for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
10132
10133 /* RelationalOperator: '<S98>/Relational Operator2' incorporates:
10134 * Constant: '<S98>/CPV2'
10135 */
10136 L4_MABX_B.F_Driver_braking = (L4_MABX_B.XPRControlMode ==
10137 L4_MABX_P.CPV2_Value_hm);
10138
10139 /* Logic: '<S98>/Logical Operator2' */
10140 L4_MABX_B.F_Operator_brake_appl = (L4_MABX_B.If_Then_Else_l.Switch &&
10141 L4_MABX_B.F_Driver_braking);
10142
10143 /* RelationalOperator: '<S98>/Relational Operator5' incorporates:
10144 * Constant: '<S98>/BENDIX_2C2_BRAKE_APPL_THRESHOLD_KPA_APV'
10145 */
10146 L4_MABX_B.RelationalOperator5[0] = (L4_MABX_B.Bendix_2C2_Primary_brake_circui >
10147 L4_MABX_P.BENDIX_2C2_BRAKE_APPL_THRESHOLD);
10148 L4_MABX_B.RelationalOperator5[1] = (L4_MABX_B.Bendix_2C2_Secondary_brake_circ >
10149 L4_MABX_P.BENDIX_2C2_BRAKE_APPL_THRESHOLD);
10150
10151 /* Logic: '<S98>/Logical Operator6' */
10152 L4_MABX_B.F_Bendix_2C2_service_brake_pres = (L4_MABX_B.RelationalOperator5[0] ||
10153 L4_MABX_B.RelationalOperator5[1]);
10154
10155 /* RelationalOperator: '<S98>/Relational Operator' incorporates:
10156 * Constant: '<S98>/CPV'
10157 */
10158 L4_MABX_B.F_Bendix_2C2_braking = (L4_MABX_B.XPRControlMode ==
10159 L4_MABX_P.CPV_Value_e);
10160
10161 /* Logic: '<S98>/Logical Operator7' */
10162 L4_MABX_B.F_ADAS_brake_appl = (L4_MABX_B.If_Then_Else_l.Switch &&
10163 L4_MABX_B.F_Bendix_2C2_braking && L4_MABX_B.F_Bendix_2C2_service_brake_pres);
10164
10165 /* RelationalOperator: '<S98>/Relational Operator1' incorporates:
10166 * Constant: '<S98>/CPV1'
10167 */
10168 L4_MABX_B.F_ADAS_brake_error = (L4_MABX_B.XPRErrorState !=
10169 L4_MABX_P.CPV1_Value_i5);
10170
10171 /* Lookup_n-D: '<S193>/2D_Lookup_Table' */
10172 L4_MABX_B.uD_Lookup_Table_le = look2_binlcapw
10173 (L4_MABX_B.brake_system_avg_appl_pressure_,
10174 L4_MABX_B.SPN1760_GrossCombinationVehicle, BRK_GOV_FF_PRESS_KPA_STEP_MPV,
10175 BRK_GOV_FF_MASS_STEP_MPV, BRK_GOV_FF_DECEL_RATE_DATA_MPV,
10176 L4_MABX_P.uD_Lookup_Table_maxIndex_m, 16U);
10177
10178 /* Saturate: '<S100>/Saturation4' */
10179 DeltaTime = L4_MABX_B.uD_Lookup_Table_le;
10180 Time56 = L4_MABX_P.Saturation4_LowerSat_a;
10181 PositionFinalLimited = L4_MABX_P.Saturation4_UpperSat_f;
10182 if (DeltaTime > PositionFinalLimited) {
10183 L4_MABX_B.Decel_rate_calculated_ms2 = PositionFinalLimited;
10184 } else if (DeltaTime < Time56) {
10185 L4_MABX_B.Decel_rate_calculated_ms2 = Time56;
10186 } else {
10187 L4_MABX_B.Decel_rate_calculated_ms2 = DeltaTime;
10188 }
10189
10190 /* End of Saturate: '<S100>/Saturation4' */
10191
10192 /* DataTypeConversion: '<S101>/Data Type Conversion' */
10193 L4_MABX_B.DataTypeConversion_pp = L4_MABX_B.SFunction1_o1_bn;
10194
10195 /* DataTypeConversion: '<S101>/Data Type Conversion1' */
10196 L4_MABX_B.DataTypeConversion1_k = L4_MABX_B.SFunction1_o2_nn;
10197
10198 /* Sum: '<S101>/Add' */
10199 L4_MABX_B.Add_m = L4_MABX_B.DataTypeConversion_pp +
10200 L4_MABX_B.DataTypeConversion1_k;
10201
10202 /* UnitDelay: '<S101>/Unit_Delay' */
10203 L4_MABX_B.Unit_Delay_dy = L4_MABX_DW.Unit_Delay_DSTATE_eu4;
10204
10205 /* UnitDelay: '<S197>/Unit_Delay1' */
10206 L4_MABX_B.Unit_Delay1_k = L4_MABX_DW.Unit_Delay1_DSTATE_d;
10207
10208 /* Logic: '<S197>/Logical Operator' */
10209 L4_MABX_B.LogicalOperator_fc = (L4_MABX_B.Unit_Delay_dy ||
10210 L4_MABX_B.Unit_Delay1_k);
10211
10212 /* Gain: '<S101>/Gain' */
10213 L4_MABX_B.Gain_j = L4_MABX_P.Gain_Gain_f * L4_MABX_B.Add_m;
10214
10215 /* MinMax: '<S197>/MinMax1' incorporates:
10216 * Constant: '<S101>/Constant10'
10217 * Constant: '<S101>/VSPD_CAN_HRW_0B_FILT_T_APV'
10218 */
10219 DeltaTime = L4_MABX_P.Constant10_Value;
10220 PositionFinalLimited = L4_MABX_P.VSPD_CAN_HRW_0B_FILT_T_APV_Valu;
10221 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10222 PositionFinalLimited = DeltaTime;
10223 }
10224
10225 L4_MABX_B.MinMax1_i = PositionFinalLimited;
10226
10227 /* End of MinMax: '<S197>/MinMax1' */
10228
10229 /* Saturate: '<S197>/Saturation' */
10230 DeltaTime = L4_MABX_B.MinMax1_i;
10231 Time56 = L4_MABX_P.Saturation_LowerSat_b;
10232 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_l;
10233 if (DeltaTime > PositionFinalLimited) {
10234 L4_MABX_B.Saturation_n = PositionFinalLimited;
10235 } else if (DeltaTime < Time56) {
10236 L4_MABX_B.Saturation_n = Time56;
10237 } else {
10238 L4_MABX_B.Saturation_n = DeltaTime;
10239 }
10240
10241 /* End of Saturate: '<S197>/Saturation' */
10242
10243 /* Product: '<S197>/Divide' incorporates:
10244 * Constant: '<S101>/Constant10'
10245 */
10246 L4_MABX_B.Divide_a = L4_MABX_P.Constant10_Value / L4_MABX_B.Saturation_n;
10247
10248 /* Product: '<S197>/Product2' */
10249 L4_MABX_B.Product2_o = L4_MABX_B.Gain_j * L4_MABX_B.Divide_a;
10250
10251 /* Sum: '<S197>/Subtract1' incorporates:
10252 * Constant: '<S197>/Constant1'
10253 */
10254 L4_MABX_B.Subtract1_e = L4_MABX_P.Constant1_Value_od - L4_MABX_B.Divide_a;
10255
10256 /* UnitDelay: '<S197>/Unit_Delay2' */
10257 L4_MABX_B.Unit_Delay2_g = L4_MABX_DW.Unit_Delay2_DSTATE_e;
10258
10259 /* Product: '<S197>/Product1' */
10260 L4_MABX_B.Product1_o = L4_MABX_B.Subtract1_e * L4_MABX_B.Unit_Delay2_g;
10261
10262 /* Sum: '<S197>/Add1' */
10263 L4_MABX_B.Add1_n1 = L4_MABX_B.Product2_o + L4_MABX_B.Product1_o;
10264
10265 /* Outputs for Atomic SubSystem: '<S197>/If_Then_Else' */
10266 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_fc, L4_MABX_B.Gain_j,
10267 L4_MABX_B.Add1_n1, &L4_MABX_B.If_Then_Else_ga);
10268
10269 /* End of Outputs for SubSystem: '<S197>/If_Then_Else' */
10270
10271 /* SampleTimeMath: '<S196>/TSamp'
10272 *
10273 * About '<S196>/TSamp':
10274 * y = u * K where K = 1 / ( w * Ts )
10275 */
10276 L4_MABX_B.TSamp = L4_MABX_B.If_Then_Else_ga.Switch * L4_MABX_P.TSamp_WtEt;
10277
10278 /* UnitDelay: '<S196>/UD' */
10279 L4_MABX_B.Uk1_b = L4_MABX_DW.UD_DSTATE;
10280
10281 /* Sum: '<S196>/Diff' */
10282 L4_MABX_B.Diff = L4_MABX_B.TSamp - L4_MABX_B.Uk1_b;
10283
10284 /* MinMax: '<S77>/MinMax' */
10285 DeltaTime = L4_MABX_B.If_Then_Else_nj.Switch;
10286 PositionFinalLimited = L4_MABX_B.If_Then_Else_fo.Switch;
10287 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10288 PositionFinalLimited = DeltaTime;
10289 }
10290
10291 L4_MABX_B.BrakingPID_Y_percent = PositionFinalLimited;
10292
10293 /* End of MinMax: '<S77>/MinMax' */
10294
10295 /* Gain: '<S77>/Gain' */
10296 L4_MABX_B.BrakingPID_Y_k = L4_MABX_P.Gain_Gain_no *
10297 L4_MABX_B.BrakingPID_Y_percent;
10298
10299 /* DataTypeConversion: '<S79>/Data Type Conversion' */
10300 L4_MABX_B.DataTypeConversion_de = AutonomousEnabled;
10301
10302 /* DataTypeConversion: '<S79>/Data Type Conversion2' */
10303 L4_MABX_B.DataTypeConversion2_lf = (real32_T)L4_MABX_B.SFunction1_o1_in;
10304
10305 /* DataTypeConversion: '<S79>/Data Type Conversion1' */
10306 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o8_g5);
10307 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
10308 PositionFinalLimited = 0.0;
10309 } else {
10310 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
10311 }
10312
10313 L4_MABX_B.DataTypeConversion1_f1 = (uint8_T)(PositionFinalLimited < 0.0 ?
10314 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
10315 (uint8_T)PositionFinalLimited);
10316
10317 /* End of DataTypeConversion: '<S79>/Data Type Conversion1' */
10318
10319 /* Chart: '<S79>/Chart' incorporates:
10320 * Constant: '<S79>/Constant'
10321 */
10322 /* Gateway: STATE_CONTROL_10ms/Chart */
10323 /* During: STATE_CONTROL_10ms/Chart */
10324 if (L4_MABX_DW.is_active_c19_SUB_L4_Task_10ms_ == 0U) {
10325 /* Entry: STATE_CONTROL_10ms/Chart */
10326 L4_MABX_DW.is_active_c19_SUB_L4_Task_10ms_ = 1U;
10327
10328 /* Entry Internal: STATE_CONTROL_10ms/Chart */
10329 /* Transition: '<S201>:2' */
10330 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_Init;
10331
10332 /* Entry 'Init': '<S201>:1' */
10333 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_INIT;
10334 } else {
10335 switch (L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA) {
10336 case L4_MABX_IN_Init:
10337 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_INIT;
10338
10339 /* During 'Init': '<S201>:1' */
10340 if (!L4_MABX_P.Constant_Value_cp) {
10341 /* Transition: '<S201>:9' */
10342 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_OperatorDisabled;
10343
10344 /* Entry 'OperatorDisabled': '<S201>:3' */
10345 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_OPERATOR_DISABLED;
10346 }
10347 break;
10348
10349 case L4_MABX_IN_OperatorDisabled:
10350 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_OPERATOR_DISABLED;
10351
10352 /* During 'OperatorDisabled': '<S201>:3' */
10353 if (L4_MABX_B.DataTypeConversion_de) {
10354 /* Transition: '<S201>:11' */
10355 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_OperatorEnabled;
10356
10357 /* Entry 'OperatorEnabled': '<S201>:10' */
10358 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_AUTO_CTRL_ENABLED;
10359
10360 /* Entry Internal 'OperatorEnabled': '<S201>:10' */
10361 /* Transition: '<S201>:16' */
10362 /* Entry 'AutoControlEnabled': '<S201>:13' */
10363 /* Entry Internal 'AutoControlEnabled': '<S201>:13' */
10364 /* Transition: '<S201>:15' */
10365 /* Entry 'init': '<S201>:14' */
10366 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_INIT;
10367 }
10368 break;
10369
10370 default:
10371 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_AUTO_CTRL_ENABLED;
10372
10373 /* During 'OperatorEnabled': '<S201>:10' */
10374 if ((!L4_MABX_B.DataTypeConversion_de) || L4_MABX_P.Constant_Value_cp) {
10375 /* Transition: '<S201>:12' */
10376 /* Exit Internal 'OperatorEnabled': '<S201>:10' */
10377 /* Exit Internal 'AutoControlEnabled': '<S201>:13' */
10378 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_OperatorDisabled;
10379
10380 /* Entry 'OperatorDisabled': '<S201>:3' */
10381 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_OPERATOR_DISABLED;
10382 } else {
10383 /* During 'AutoControlEnabled': '<S201>:13' */
10384 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_INIT;
10385
10386 /* During 'init': '<S201>:14' */
10387 }
10388 break;
10389 }
10390 }
10391
10392 /* End of Chart: '<S79>/Chart' */
10393
10394 /* Outputs for Enabled SubSystem: '<S79>/Engine_speed_target' incorporates:
10395 * EnablePort: '<S204>/Enable'
10396 */
10397 if (L4_MABX_B.LogicalOperator_k) {
10398 if (!L4_MABX_DW.Engine_speed_target_MODE) {
10399 L4_MABX_DW.Engine_speed_target_MODE = true;
10400 }
10401
10402 /* Gain: '<S204>/KPH_TO_MPH' */
10403 L4_MABX_B.KPH_TO_MPH = L4_MABX_P.KPH_TO_MPH_Gain *
10404 L4_MABX_B.VSPD_TARGET_KPH_APV_g;
10405
10406 /* MinMax: '<S204>/MinMax' incorporates:
10407 * Constant: '<S204>/Constant2'
10408 * Constant: '<S204>/TIRE_DIAM_INCHES_APV'
10409 */
10410 DeltaTime = L4_MABX_P.TIRE_DIAM_INCHES_APV_Value;
10411 PositionFinalLimited = L4_MABX_P.Constant2_Value_m;
10412 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10413 PositionFinalLimited = DeltaTime;
10414 }
10415
10416 L4_MABX_B.MinMax_dl = PositionFinalLimited;
10417
10418 /* End of MinMax: '<S204>/MinMax' */
10419
10420 /* Product: '<S204>/Divide' incorporates:
10421 * Constant: '<S204>/CONVERSION_CONSTANT_CPV'
10422 * Constant: '<S204>/REAR_AXLE_RATIO_VALUE_APV'
10423 */
10424 L4_MABX_B.Divide_p = L4_MABX_B.KPH_TO_MPH *
10425 L4_MABX_B.SPN526_TransActualGearRatio *
10426 L4_MABX_P.REAR_AXLE_RATIO_VALUE_APV_Value *
10427 L4_MABX_P.CONVERSION_CONSTANT_CPV_Value / L4_MABX_B.MinMax_dl;
10428
10429 /* MinMax: '<S204>/MinMax1' incorporates:
10430 * Constant: '<S204>/Constant1'
10431 */
10432 DeltaTime = L4_MABX_B.Divide_p;
10433 PositionFinalLimited = L4_MABX_P.Constant1_Value_f;
10434 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10435 PositionFinalLimited = DeltaTime;
10436 }
10437
10438 L4_MABX_B.MinMax1_n = PositionFinalLimited;
10439
10440 /* End of MinMax: '<S204>/MinMax1' */
10441 } else {
10442 if (L4_MABX_DW.Engine_speed_target_MODE) {
10443 /* Disable for Outport: '<S204>/Out1' */
10444 L4_MABX_B.MinMax1_n = L4_MABX_P.Out1_Y0;
10445 L4_MABX_DW.Engine_speed_target_MODE = false;
10446 }
10447 }
10448
10449 /* End of Outputs for SubSystem: '<S79>/Engine_speed_target' */
10450
10451 /* RelationalOperator: '<S205>/Relational Operator1' incorporates:
10452 * Constant: '<S205>/CPV3'
10453 */
10454 L4_MABX_B.RelationalOperator1_cn = (L4_MABX_B.SFunction1_o1_in <=
10455 L4_MABX_P.CPV3_Value_n);
10456
10457 /* RelationalOperator: '<S205>/Relational Operator3' incorporates:
10458 * Constant: '<S205>/CPV1'
10459 */
10460 L4_MABX_B.RelationalOperator3_g = (L4_MABX_B.SPN524_TransSelectedGear ==
10461 L4_MABX_P.CPV1_Value_n);
10462
10463 /* RelationalOperator: '<S205>/Relational Operator2' incorporates:
10464 * Constant: '<S205>/CPV2'
10465 */
10466 L4_MABX_B.RelationalOperator2_f = (L4_MABX_B.SPN523_TransCurrentGear ==
10467 L4_MABX_P.CPV2_Value_h);
10468
10469 /* RelationalOperator: '<S205>/Relational Operator4' incorporates:
10470 * Constant: '<S205>/CPV5'
10471 */
10472 L4_MABX_B.RelationalOperator4_o = (L4_MABX_B.SFunction1_o2_om ==
10473 L4_MABX_P.CPV5_Value_g);
10474
10475 /* Logic: '<S205>/Logical Operator' */
10476 L4_MABX_B.F_Ignition_sw_off_conditions_me = (L4_MABX_B.RelationalOperator1_cn &&
10477 L4_MABX_B.RelationalOperator3_g && L4_MABX_B.RelationalOperator2_f &&
10478 L4_MABX_B.RelationalOperator4_o);
10479
10480 /* RelationalOperator: '<S205>/Relational Operator' incorporates:
10481 * Constant: '<S205>/IGN_SW_VOLTAGE_THRESHOLD_APV'
10482 */
10483 L4_MABX_B.F_Ignition_sw_on = (L4_MABX_B.IgnitionKeySwitch_voltage >=
10484 L4_MABX_P.IGN_SW_VOLTAGE_THRESHOLD_APV_Va);
10485
10486 /* SignalConversion: '<S212>/TmpSignal ConversionAt SFunction Inport3' incorporates:
10487 * Chart: '<S205>/Relay_control_state_machine'
10488 * Constant: '<S205>/IGN_RELAY_ON_DELAY_SECS_APV'
10489 * Constant: '<S205>/INVERTER_RELAY_ON_DELAY_SECS_APV'
10490 * Constant: '<S205>/MABX_RELAY_ON_DELAY_SECS_APV'
10491 * Constant: '<S205>/SENSOR_RELAY_ON_DELAY_SECS_APV'
10492 */
10493 L4_MABX_B.TmpSignalConversionAtSFunctionI[0] =
10494 L4_MABX_P.IGN_RELAY_ON_DELAY_SECS_APV_Val;
10495 L4_MABX_B.TmpSignalConversionAtSFunctionI[1] =
10496 L4_MABX_P.INVERTER_RELAY_ON_DELAY_SECS_AP;
10497 L4_MABX_B.TmpSignalConversionAtSFunctionI[2] =
10498 L4_MABX_P.MABX_RELAY_ON_DELAY_SECS_APV_Va;
10499 L4_MABX_B.TmpSignalConversionAtSFunctionI[3] =
10500 L4_MABX_P.SENSOR_RELAY_ON_DELAY_SECS_APV_;
10501
10502 /* SignalConversion: '<S212>/TmpSignal ConversionAt SFunction Inport4' incorporates:
10503 * Chart: '<S205>/Relay_control_state_machine'
10504 * Constant: '<S205>/IGN_RELAY_OFF_DELAY_SECS_APV'
10505 * Constant: '<S205>/INVERTER_RELAY_OFF_DELAY_SECS_APV'
10506 * Constant: '<S205>/MABX_RELAY_OFF_DELAY_SECS_APV'
10507 * Constant: '<S205>/SENSOR_RELAY_OFF_DELAY_SECS_APV'
10508 */
10509 L4_MABX_B.TmpSignalConversionAtSFunctio_k[0] =
10510 L4_MABX_P.IGN_RELAY_OFF_DELAY_SECS_APV_Va;
10511 L4_MABX_B.TmpSignalConversionAtSFunctio_k[1] =
10512 L4_MABX_P.INVERTER_RELAY_OFF_DELAY_SECS_A;
10513 L4_MABX_B.TmpSignalConversionAtSFunctio_k[2] =
10514 L4_MABX_P.MABX_RELAY_OFF_DELAY_SECS_APV_V;
10515 L4_MABX_B.TmpSignalConversionAtSFunctio_k[3] =
10516 L4_MABX_P.SENSOR_RELAY_OFF_DELAY_SECS_APV;
10517
10518 /* Chart: '<S205>/Relay_control_state_machine' */
10519 if (L4_MABX_DW.temporalCounter_i1 < MAX_uint32_T) {
10520 L4_MABX_DW.temporalCounter_i1++;
10521 }
10522
10523 /* Gateway: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10524 /* During: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10525 if (L4_MABX_DW.is_active_c6_SUB_L4_Task_10ms_S == 0U) {
10526 /* Entry: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10527 L4_MABX_DW.is_active_c6_SUB_L4_Task_10ms_S = 1U;
10528
10529 /* Entry Internal: STATE_CONTROL_10ms/Relay_control/Relay_control_state_machine */
10530 /* Transition: '<S212>:13' */
10531 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_INITIAL;
10532 L4_MABX_enter_atomic_INITIAL();
10533 } else {
10534 switch (L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT) {
10535 case L4_MABX_IN_INITIAL:
10536 L4_MABX_B.F_Ignition_relay_command_i = false;
10537 L4_MABX_B.F_Inverter_relay_command_p = false;
10538 L4_MABX_B.F_MABX_relay_command_n = false;
10539 L4_MABX_B.F_Sensor_relay_command_k = false;
10540
10541 /* During 'INITIAL': '<S212>:12' */
10542 if (L4_MABX_B.F_Ignition_sw_on) {
10543 /* Transition: '<S212>:17' */
10544 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_POWER_UP_ROUTINE;
10545
10546 /* Entry Internal 'POWER_UP_ROUTINE': '<S212>:16' */
10547 /* Transition: '<S212>:64' */
10548 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_WAIT;
10549 L4_MABX_DW.temporalCounter_i1 = 0U;
10550 }
10551 break;
10552
10553 case L4_MABX_IN_POWER_DOWN_ROUTINE:
10554 /* During 'POWER_DOWN_ROUTINE': '<S212>:30' */
10555 switch (L4_MABX_DW.is_POWER_DOWN_ROUTINE) {
10556 case L4_MABX_IN_IGN_RELAY_UNLATCH:
10557 L4_MABX_B.F_Ignition_relay_command_i = false;
10558
10559 /* During 'IGN_RELAY_UNLATCH': '<S212>:29' */
10560 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10561 (L4_MABX_DW.INVERTER_RELAY_OFF_DELAY_SECS_A * 100.0)) {
10562 /* Transition: '<S212>:23' */
10563 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_INV_RELAY_UNLATCH;
10564 L4_MABX_DW.temporalCounter_i1 = 0U;
10565
10566 /* Entry 'INV_RELAY_UNLATCH': '<S212>:28' */
10567 L4_MABX_B.F_Inverter_relay_command_p = false;
10568 }
10569 break;
10570
10571 case L4_MABX_IN_INV_RELAY_UNLATCH:
10572 L4_MABX_B.F_Inverter_relay_command_p = false;
10573
10574 /* During 'INV_RELAY_UNLATCH': '<S212>:28' */
10575 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10576 (L4_MABX_DW.SENSOR_RELAY_OFF_DELAY_SECS_APV * 100.0)) {
10577 /* Transition: '<S212>:22' */
10578 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_SENSOR_RELAY_UNLATCH;
10579 L4_MABX_DW.temporalCounter_i1 = 0U;
10580
10581 /* Entry 'SENSOR_RELAY_UNLATCH': '<S212>:25' */
10582 L4_MABX_B.F_Sensor_relay_command_k = false;
10583 }
10584 break;
10585
10586 case L4_MABX_IN_MABX_RELAY_UNLATCH:
10587 L4_MABX_B.F_MABX_relay_command_n = false;
10588
10589 /* During 'MABX_RELAY_UNLATCH': '<S212>:27' */
10590 /* Transition: '<S212>:45' */
10591 /* Transition: '<S212>:46' */
10592 /* Transition: '<S212>:47' */
10593 /* Transition: '<S212>:48' */
10594 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
10595 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_INITIAL;
10596 L4_MABX_enter_atomic_INITIAL();
10597 break;
10598
10599 case L4_MABX_IN_SENSOR_RELAY_UNLATCH:
10600 L4_MABX_B.F_Sensor_relay_command_k = false;
10601
10602 /* During 'SENSOR_RELAY_UNLATCH': '<S212>:25' */
10603 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10604 (L4_MABX_DW.MABX_RELAY_OFF_DELAY_SECS_APV * 100.0)) {
10605 /* Transition: '<S212>:26' */
10606 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_MABX_RELAY_UNLATCH;
10607
10608 /* Entry 'MABX_RELAY_UNLATCH': '<S212>:27' */
10609 L4_MABX_B.F_MABX_relay_command_n = false;
10610 }
10611 break;
10612
10613 default:
10614 /* During 'WAIT': '<S212>:65' */
10615 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10616 (L4_MABX_DW.IGN_RELAY_OFF_DELAY_SECS_APV * 100.0)) {
10617 /* Transition: '<S212>:55' */
10618 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_IGN_RELAY_UNLATCH;
10619 L4_MABX_DW.temporalCounter_i1 = 0U;
10620
10621 /* Entry 'IGN_RELAY_UNLATCH': '<S212>:29' */
10622 L4_MABX_B.F_Ignition_relay_command_i = false;
10623 }
10624 break;
10625 }
10626 break;
10627
10628 default:
10629 /* During 'POWER_UP_ROUTINE': '<S212>:16' */
10630 zcEvent = ((!L4_MABX_B.F_Ignition_sw_on) &&
10631 L4_MABX_B.F_Ignition_sw_off_conditions_me);
10632 if (zcEvent) {
10633 /* Transition: '<S212>:31' */
10634 /* Exit Internal 'POWER_UP_ROUTINE': '<S212>:16' */
10635 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
10636 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT =
10637 L4_MABX_IN_POWER_DOWN_ROUTINE;
10638
10639 /* Entry Internal 'POWER_DOWN_ROUTINE': '<S212>:30' */
10640 /* Transition: '<S212>:66' */
10641 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_WAIT;
10642 L4_MABX_DW.temporalCounter_i1 = 0U;
10643 } else {
10644 switch (L4_MABX_DW.is_POWER_UP_ROUTINE) {
10645 case L4_MABX_IN_IGN_RELAY_LATCH:
10646 L4_MABX_B.F_Ignition_relay_command_i = true;
10647
10648 /* During 'IGN_RELAY_LATCH': '<S212>:20' */
10649 break;
10650
10651 case L4_MABX_IN_INV_RELAY_LATCH:
10652 L4_MABX_B.F_Inverter_relay_command_p = true;
10653
10654 /* During 'INV_RELAY_LATCH': '<S212>:19' */
10655 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10656 (L4_MABX_DW.IGN_RELAY_ON_DELAY_SECS_APV * 100.0)) {
10657 /* Transition: '<S212>:21' */
10658 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_IGN_RELAY_LATCH;
10659
10660 /* Entry 'IGN_RELAY_LATCH': '<S212>:20' */
10661 L4_MABX_B.F_Ignition_relay_command_i = true;
10662 }
10663 break;
10664
10665 case L4_MABX_IN_MABX_RELAY_LATCH:
10666 L4_MABX_B.F_MABX_relay_command_n = true;
10667
10668 /* During 'MABX_RELAY_LATCH': '<S212>:10' */
10669 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10670 (L4_MABX_DW.SENSOR_RELAY_ON_DELAY_SECS_APV * 100.0)) {
10671 /* Transition: '<S212>:15' */
10672 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_SENSOR_RELAY_LATCH;
10673 L4_MABX_DW.temporalCounter_i1 = 0U;
10674
10675 /* Entry 'SENSOR_RELAY_LATCH': '<S212>:14' */
10676 L4_MABX_B.F_Sensor_relay_command_k = true;
10677 }
10678 break;
10679
10680 case L4_MABX_IN_SENSOR_RELAY_LATCH:
10681 L4_MABX_B.F_Sensor_relay_command_k = true;
10682
10683 /* During 'SENSOR_RELAY_LATCH': '<S212>:14' */
10684 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10685 (L4_MABX_DW.INVERTER_RELAY_ON_DELAY_SECS_AP * 100.0)) {
10686 /* Transition: '<S212>:18' */
10687 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_INV_RELAY_LATCH;
10688 L4_MABX_DW.temporalCounter_i1 = 0U;
10689
10690 /* Entry 'INV_RELAY_LATCH': '<S212>:19' */
10691 L4_MABX_B.F_Inverter_relay_command_p = true;
10692 }
10693 break;
10694
10695 default:
10696 /* During 'WAIT': '<S212>:63' */
10697 if (L4_MABX_DW.temporalCounter_i1 >= (uint32_T)ceil
10698 (L4_MABX_DW.MABX_RELAY_ON_DELAY_SECS_APV * 100.0)) {
10699 /* Transition: '<S212>:11' */
10700 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_MABX_RELAY_LATCH;
10701 L4_MABX_DW.temporalCounter_i1 = 0U;
10702
10703 /* Entry 'MABX_RELAY_LATCH': '<S212>:10' */
10704 L4_MABX_B.F_MABX_relay_command_n = true;
10705 }
10706 break;
10707 }
10708 }
10709 break;
10710 }
10711 }
10712
10713 /* Lookup_n-D: '<S79>/CurveBasedSpeedSetpoint' incorporates:
10714 * Constant: '<S80>/zero'
10715 */
10716 L4_MABX_B.CurveBasedSpeedSetpoint = look1_binlcapw(L4_MABX_P.zero_Value,
10717 L4_MABX_P.CurveBasedSpeedSetpoint_bp01Dat,
10718 L4_MABX_P.CurveBasedSpeedSetpoint_tableDa, 4U);
10719
10720 /* Lookup_n-D: '<S80>/1-D Lookup Table1' */
10721 L4_MABX_B.uDLookupTable1 = look1_binlxpw(SteerWheelAngle,
10722 L4_MABX_P.uDLookupTable1_bp01Data, L4_MABX_P.uDLookupTable1_tableData, 16U);
10723
10724 /* Product: '<S278>/Divide' incorporates:
10725 * Constant: '<S271>/Constant'
10726 * Constant: '<S271>/Constant1'
10727 */
10728 L4_MABX_B.Divide_nn = (real32_T)(L4_MABX_P.Constant1_Value_i /
10729 L4_MABX_P.Constant_Value_e);
10730
10731 /* DataTypeConversion: '<S80>/Data Type Conversion5' */
10732 PositionFinalLimited = floor(L4_MABX_B.SFunction1_o2_dt);
10733 if (rtIsNaN(PositionFinalLimited) || rtIsInf(PositionFinalLimited)) {
10734 PositionFinalLimited = 0.0;
10735 } else {
10736 PositionFinalLimited = fmod(PositionFinalLimited, 256.0);
10737 }
10738
10739 L4_MABX_B.DataTypeConversion5_e3 = (uint8_T)(PositionFinalLimited < 0.0 ?
10740 (int32_T)(uint8_T)-(int8_T)(uint8_T)-PositionFinalLimited : (int32_T)
10741 (uint8_T)PositionFinalLimited);
10742
10743 /* End of DataTypeConversion: '<S80>/Data Type Conversion5' */
10744
10745 /* Chart: '<S276>/Chart' */
10746 /* Gateway: STEERCTRL_10ms/slew/Chart */
10747 /* During: STEERCTRL_10ms/slew/Chart */
10748 if (L4_MABX_DW.is_active_c12_SUB_L4_Task_10ms_ == 0U) {
10749 /* Entry: STEERCTRL_10ms/slew/Chart */
10750 L4_MABX_DW.is_active_c12_SUB_L4_Task_10ms_ = 1U;
10751
10752 /* Entry Internal: STEERCTRL_10ms/slew/Chart */
10753 /* Transition: '<S320>:4' */
10754 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_f;
10755
10756 /* Entry 'init': '<S320>:1' */
10757 L4_MABX_B.stateChange = 0U;
10758 } else {
10759 switch (L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE) {
10760 case L4_MABX_IN_OneLane:
10761 /* During 'OneLane': '<S320>:7' */
10762 /* Transition: '<S320>:20' */
10763 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_OneLane1;
10764
10765 /* Entry 'OneLane1': '<S320>:18' */
10766 L4_MABX_B.stateChange = 0U;
10767 break;
10768
10769 case L4_MABX_IN_OneLane1:
10770 L4_MABX_B.stateChange = 0U;
10771
10772 /* During 'OneLane1': '<S320>:18' */
10773 zcEvent = ((L4_MABX_B.DataTypeConversion5_e3 < 3) ||
10774 (L4_MABX_B.DataTypeConversion5_e3 > 18));
10775 if (zcEvent) {
10776 /* Transition: '<S320>:22' */
10777 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_f;
10778
10779 /* Entry 'init': '<S320>:1' */
10780 L4_MABX_B.stateChange = 0U;
10781 }
10782 break;
10783
10784 case L4_MABX_IN_TwoLanes:
10785 /* During 'TwoLanes': '<S320>:8' */
10786 /* Transition: '<S320>:21' */
10787 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_TwoLanes1;
10788
10789 /* Entry 'TwoLanes1': '<S320>:19' */
10790 L4_MABX_B.stateChange = 0U;
10791 break;
10792
10793 case L4_MABX_IN_TwoLanes1:
10794 L4_MABX_B.stateChange = 0U;
10795
10796 /* During 'TwoLanes1': '<S320>:19' */
10797 if (L4_MABX_B.DataTypeConversion5_e3 < 18) {
10798 /* Transition: '<S320>:23' */
10799 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_f;
10800
10801 /* Entry 'init': '<S320>:1' */
10802 L4_MABX_B.stateChange = 0U;
10803 }
10804 break;
10805
10806 case L4_MABX_IN_ZeroLanes:
10807 /* During 'ZeroLanes': '<S320>:5' */
10808 /* Transition: '<S320>:16' */
10809 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_ZeroLanes1;
10810
10811 /* Entry 'ZeroLanes1': '<S320>:15' */
10812 L4_MABX_B.stateChange = 0U;
10813 break;
10814
10815 case L4_MABX_IN_ZeroLanes1:
10816 L4_MABX_B.stateChange = 0U;
10817
10818 /* During 'ZeroLanes1': '<S320>:15' */
10819 if (L4_MABX_B.DataTypeConversion5_e3 > 3) {
10820 /* Transition: '<S320>:17' */
10821 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_init_f;
10822
10823 /* Entry 'init': '<S320>:1' */
10824 L4_MABX_B.stateChange = 0U;
10825 }
10826 break;
10827
10828 default:
10829 L4_MABX_B.stateChange = 0U;
10830
10831 /* During 'init': '<S320>:1' */
10832 if (L4_MABX_B.DataTypeConversion5_e3 <= 3) {
10833 /* Transition: '<S320>:6' */
10834 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_ZeroLanes;
10835
10836 /* Entry 'ZeroLanes': '<S320>:5' */
10837 L4_MABX_B.stateChange = 1U;
10838 } else if (L4_MABX_B.DataTypeConversion5_e3 > 18) {
10839 /* Transition: '<S320>:9' */
10840 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_TwoLanes;
10841
10842 /* Entry 'TwoLanes': '<S320>:8' */
10843 L4_MABX_B.stateChange = 1U;
10844 } else {
10845 if (L4_MABX_B.DataTypeConversion5_e3 > 3) {
10846 /* Transition: '<S320>:10' */
10847 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_OneLane;
10848
10849 /* Entry 'OneLane': '<S320>:7' */
10850 L4_MABX_B.stateChange = 1U;
10851 }
10852 }
10853 break;
10854 }
10855 }
10856
10857 /* End of Chart: '<S276>/Chart' */
10858
10859 /* DataTypeConversion: '<S276>/Data Type Conversion' */
10860 L4_MABX_B.DataTypeConversion_l1 = (L4_MABX_B.stateChange != 0);
10861
10862 /* UnitDelay: '<S314>/Unit_Delay1' */
10863 L4_MABX_B.Unit_Delay1_j = L4_MABX_DW.Unit_Delay1_DSTATE_db;
10864
10865 /* Logic: '<S314>/Logical Operator' incorporates:
10866 * Constant: '<S275>/zero'
10867 */
10868 L4_MABX_B.LogicalOperator_kh = (L4_MABX_P.zero_Value_g ||
10869 L4_MABX_B.Unit_Delay1_j);
10870
10871 /* MinMax: '<S314>/MinMax1' incorporates:
10872 * Constant: '<S275>/timeConstant'
10873 * Constant: '<S275>/timeConstant1'
10874 */
10875 DeltaTime = L4_MABX_P.timeConstant1_Value;
10876 PositionFinalLimited = L4_MABX_P.timeConstant_Value;
10877 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10878 PositionFinalLimited = DeltaTime;
10879 }
10880
10881 L4_MABX_B.MinMax1_pr = PositionFinalLimited;
10882
10883 /* End of MinMax: '<S314>/MinMax1' */
10884
10885 /* Saturate: '<S314>/Saturation' */
10886 DeltaTime = L4_MABX_B.MinMax1_pr;
10887 Time56 = L4_MABX_P.Saturation_LowerSat_p2;
10888 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_o1;
10889 if (DeltaTime > PositionFinalLimited) {
10890 L4_MABX_B.Saturation_ns = PositionFinalLimited;
10891 } else if (DeltaTime < Time56) {
10892 L4_MABX_B.Saturation_ns = Time56;
10893 } else {
10894 L4_MABX_B.Saturation_ns = DeltaTime;
10895 }
10896
10897 /* End of Saturate: '<S314>/Saturation' */
10898
10899 /* Product: '<S314>/Divide' incorporates:
10900 * Constant: '<S275>/timeConstant1'
10901 */
10902 L4_MABX_B.Divide_o = L4_MABX_P.timeConstant1_Value / L4_MABX_B.Saturation_ns;
10903
10904 /* Product: '<S314>/Product2' */
10905 L4_MABX_B.Product2_b = L4_MABX_B.SFunction1_o3_kw * L4_MABX_B.Divide_o;
10906
10907 /* Sum: '<S314>/Subtract1' incorporates:
10908 * Constant: '<S314>/Constant1'
10909 */
10910 L4_MABX_B.Subtract1_ei = L4_MABX_P.Constant1_Value_n - L4_MABX_B.Divide_o;
10911
10912 /* UnitDelay: '<S314>/Unit_Delay2' */
10913 L4_MABX_B.Unit_Delay2_k = L4_MABX_DW.Unit_Delay2_DSTATE_d;
10914
10915 /* Product: '<S314>/Product1' */
10916 L4_MABX_B.Product1_n = L4_MABX_B.Subtract1_ei * L4_MABX_B.Unit_Delay2_k;
10917
10918 /* Sum: '<S314>/Add1' */
10919 L4_MABX_B.Add1_k = L4_MABX_B.Product2_b + L4_MABX_B.Product1_n;
10920
10921 /* Outputs for Atomic SubSystem: '<S314>/If_Then_Else' */
10922 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_kh, L4_MABX_B.SFunction1_o3_kw,
10923 L4_MABX_B.Add1_k, &L4_MABX_B.If_Then_Else_b);
10924
10925 /* End of Outputs for SubSystem: '<S314>/If_Then_Else' */
10926
10927 /* Abs: '<S275>/Abs' */
10928 L4_MABX_B.Abs_i = fabs(L4_MABX_B.SFunction1_o3_kw);
10929
10930 /* Sum: '<S275>/Add' */
10931 L4_MABX_B.Add_p = L4_MABX_B.Abs_i - L4_MABX_B.If_Then_Else_b.Switch;
10932
10933 /* RelationalOperator: '<S275>/highRateOfChange' incorporates:
10934 * Constant: '<S275>/rateOfChangeThreshold'
10935 */
10936 L4_MABX_B.highRateOfChange = (L4_MABX_B.Add_p >
10937 L4_MABX_P.rateOfChangeThreshold_Value);
10938
10939 /* RelationalOperator: '<S275>/closeToEdge' incorporates:
10940 * Constant: '<S275>/closeToLaneEdgeThreshold'
10941 */
10942 L4_MABX_B.closeToEdge = (L4_MABX_B.Abs_i >
10943 L4_MABX_P.closeToLaneEdgeThreshold_Value);
10944
10945 /* Logic: '<S275>/JumpNearEdge' */
10946 L4_MABX_B.JumpNearEdge = (L4_MABX_B.highRateOfChange && L4_MABX_B.closeToEdge);
10947
10948 /* UnitDelay: '<S313>/Delay Input1' */
10949 L4_MABX_B.Uk1_k2 = L4_MABX_DW.DelayInput1_DSTATE_f0;
10950
10951 /* RelationalOperator: '<S313>/FixPt Relational Operator' */
10952 L4_MABX_B.FixPtRelationalOperator_i = (L4_MABX_B.JumpNearEdge !=
10953 L4_MABX_B.Uk1_k2);
10954
10955 /* DataTypeConversion: '<S275>/Data Type Conversion' */
10956 L4_MABX_B.DataTypeConversion_dz = L4_MABX_B.FixPtRelationalOperator_i;
10957
10958 /* UnitDelay: '<S315>/Unit_Delay1' */
10959 L4_MABX_B.Unit_Delay1_f = L4_MABX_DW.Unit_Delay1_DSTATE_a;
10960
10961 /* Logic: '<S315>/Logical Operator' */
10962 L4_MABX_B.LogicalOperator_a = (L4_MABX_B.DataTypeConversion_dz ||
10963 L4_MABX_B.Unit_Delay1_f);
10964
10965 /* Switch: '<S275>/Switch' incorporates:
10966 * Constant: '<S275>/correction'
10967 * Constant: '<S275>/zero1'
10968 */
10969 if (L4_MABX_B.JumpNearEdge) {
10970 L4_MABX_B.Switch_g = L4_MABX_P.correction_Value;
10971 } else {
10972 L4_MABX_B.Switch_g = L4_MABX_P.zero1_Value;
10973 }
10974
10975 /* End of Switch: '<S275>/Switch' */
10976
10977 /* MinMax: '<S315>/MinMax1' incorporates:
10978 * Constant: '<S275>/timeConstant2'
10979 * Constant: '<S275>/timeConstant3'
10980 */
10981 DeltaTime = L4_MABX_P.timeConstant3_Value;
10982 PositionFinalLimited = L4_MABX_P.timeConstant2_Value;
10983 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
10984 PositionFinalLimited = DeltaTime;
10985 }
10986
10987 L4_MABX_B.MinMax1_au = PositionFinalLimited;
10988
10989 /* End of MinMax: '<S315>/MinMax1' */
10990
10991 /* Saturate: '<S315>/Saturation' */
10992 DeltaTime = L4_MABX_B.MinMax1_au;
10993 Time56 = L4_MABX_P.Saturation_LowerSat_ph;
10994 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_d;
10995 if (DeltaTime > PositionFinalLimited) {
10996 L4_MABX_B.Saturation_e = PositionFinalLimited;
10997 } else if (DeltaTime < Time56) {
10998 L4_MABX_B.Saturation_e = Time56;
10999 } else {
11000 L4_MABX_B.Saturation_e = DeltaTime;
11001 }
11002
11003 /* End of Saturate: '<S315>/Saturation' */
11004
11005 /* Product: '<S315>/Divide' incorporates:
11006 * Constant: '<S275>/timeConstant3'
11007 */
11008 L4_MABX_B.Divide_d = L4_MABX_P.timeConstant3_Value / L4_MABX_B.Saturation_e;
11009
11010 /* Product: '<S315>/Product2' */
11011 L4_MABX_B.Product2_fk = L4_MABX_B.Switch_g * L4_MABX_B.Divide_d;
11012
11013 /* Sum: '<S315>/Subtract1' incorporates:
11014 * Constant: '<S315>/Constant1'
11015 */
11016 L4_MABX_B.Subtract1_b = L4_MABX_P.Constant1_Value_j - L4_MABX_B.Divide_d;
11017
11018 /* UnitDelay: '<S315>/Unit_Delay2' */
11019 L4_MABX_B.Unit_Delay2_l = L4_MABX_DW.Unit_Delay2_DSTATE_im;
11020
11021 /* Product: '<S315>/Product1' */
11022 L4_MABX_B.Product1_c = L4_MABX_B.Subtract1_b * L4_MABX_B.Unit_Delay2_l;
11023
11024 /* Sum: '<S315>/Add1' */
11025 L4_MABX_B.Add1_p = L4_MABX_B.Product2_fk + L4_MABX_B.Product1_c;
11026
11027 /* Outputs for Atomic SubSystem: '<S315>/If_Then_Else' */
11028
11029 /* Constant: '<S275>/zero2' */
11030 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_a, L4_MABX_P.zero2_Value,
11031 L4_MABX_B.Add1_p, &L4_MABX_B.If_Then_Else_mk);
11032
11033 /* End of Outputs for SubSystem: '<S315>/If_Then_Else' */
11034
11035 /* Signum: '<S275>/Sign' */
11036 PositionFinalLimited = L4_MABX_B.SFunction1_o3_kw;
11037 if (PositionFinalLimited < 0.0) {
11038 L4_MABX_B.Sign = -1.0;
11039 } else if (PositionFinalLimited > 0.0) {
11040 L4_MABX_B.Sign = 1.0;
11041 } else if (PositionFinalLimited == 0.0) {
11042 L4_MABX_B.Sign = 0.0;
11043 } else {
11044 L4_MABX_B.Sign = (rtNaN);
11045 }
11046
11047 /* End of Signum: '<S275>/Sign' */
11048
11049 /* Product: '<S275>/Product' */
11050 L4_MABX_B.Product_cf = L4_MABX_B.If_Then_Else_mk.Switch * L4_MABX_B.Sign;
11051
11052 /* UnitDelay: '<S316>/Unit_Delay1' */
11053 L4_MABX_B.Unit_Delay1_d = L4_MABX_DW.Unit_Delay1_DSTATE_p;
11054
11055 /* Logic: '<S316>/Logical Operator' incorporates:
11056 * Constant: '<S275>/zero3'
11057 */
11058 L4_MABX_B.LogicalOperator_nz = (L4_MABX_P.zero3_Value ||
11059 L4_MABX_B.Unit_Delay1_d);
11060
11061 /* MinMax: '<S316>/MinMax1' incorporates:
11062 * Constant: '<S275>/timeConstant4'
11063 * Constant: '<S275>/timeConstant5'
11064 */
11065 DeltaTime = L4_MABX_P.timeConstant5_Value;
11066 PositionFinalLimited = L4_MABX_P.timeConstant4_Value;
11067 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11068 PositionFinalLimited = DeltaTime;
11069 }
11070
11071 L4_MABX_B.MinMax1_e0 = PositionFinalLimited;
11072
11073 /* End of MinMax: '<S316>/MinMax1' */
11074
11075 /* Saturate: '<S316>/Saturation' */
11076 DeltaTime = L4_MABX_B.MinMax1_e0;
11077 Time56 = L4_MABX_P.Saturation_LowerSat_k;
11078 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_ok;
11079 if (DeltaTime > PositionFinalLimited) {
11080 L4_MABX_B.Saturation_o = PositionFinalLimited;
11081 } else if (DeltaTime < Time56) {
11082 L4_MABX_B.Saturation_o = Time56;
11083 } else {
11084 L4_MABX_B.Saturation_o = DeltaTime;
11085 }
11086
11087 /* End of Saturate: '<S316>/Saturation' */
11088
11089 /* Product: '<S316>/Divide' incorporates:
11090 * Constant: '<S275>/timeConstant5'
11091 */
11092 L4_MABX_B.Divide_j = L4_MABX_P.timeConstant5_Value / L4_MABX_B.Saturation_o;
11093
11094 /* Product: '<S316>/Product2' */
11095 L4_MABX_B.Product2_nk = L4_MABX_B.SFunction1_o3_kw * L4_MABX_B.Divide_j;
11096
11097 /* Sum: '<S316>/Subtract1' incorporates:
11098 * Constant: '<S316>/Constant1'
11099 */
11100 L4_MABX_B.Subtract1_eh = L4_MABX_P.Constant1_Value_oi - L4_MABX_B.Divide_j;
11101
11102 /* UnitDelay: '<S316>/Unit_Delay2' */
11103 L4_MABX_B.Unit_Delay2_c = L4_MABX_DW.Unit_Delay2_DSTATE_p;
11104
11105 /* Product: '<S316>/Product1' */
11106 L4_MABX_B.Product1_cc = L4_MABX_B.Subtract1_eh * L4_MABX_B.Unit_Delay2_c;
11107
11108 /* Sum: '<S316>/Add1' */
11109 L4_MABX_B.Add1_f = L4_MABX_B.Product2_nk + L4_MABX_B.Product1_cc;
11110
11111 /* Outputs for Atomic SubSystem: '<S316>/If_Then_Else' */
11112 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_nz, L4_MABX_B.SFunction1_o3_kw,
11113 L4_MABX_B.Add1_f, &L4_MABX_B.If_Then_Else_lh);
11114
11115 /* End of Outputs for SubSystem: '<S316>/If_Then_Else' */
11116
11117 /* Switch: '<S275>/Switch1' */
11118 if (L4_MABX_B.JumpNearEdge) {
11119 L4_MABX_B.Switch1_f = L4_MABX_B.If_Then_Else_lh.Switch;
11120 } else {
11121 L4_MABX_B.Switch1_f = L4_MABX_B.SFunction1_o3_kw;
11122 }
11123
11124 /* End of Switch: '<S275>/Switch1' */
11125
11126 /* Sum: '<S275>/corrected Error' */
11127 L4_MABX_B.correctedError = L4_MABX_B.Product_cf + L4_MABX_B.Switch1_f;
11128
11129 /* RelationalOperator: '<S276>/Relational Operator' incorporates:
11130 * Constant: '<S276>/Constant'
11131 */
11132 L4_MABX_B.RelationalOperator_l5 = (L4_MABX_B.DataTypeConversion5_e3 >=
11133 L4_MABX_P.Constant_Value_mg);
11134
11135 /* Switch: '<S276>/Switch' incorporates:
11136 * Constant: '<S276>/Constant1'
11137 */
11138 if (L4_MABX_B.RelationalOperator_l5) {
11139 L4_MABX_B.Switch_h = L4_MABX_B.correctedError;
11140 } else {
11141 L4_MABX_B.Switch_h = L4_MABX_P.Constant1_Value_l;
11142 }
11143
11144 /* End of Switch: '<S276>/Switch' */
11145
11146 /* Outputs for Enabled SubSystem: '<S276>/Slew_at_event' incorporates:
11147 * EnablePort: '<S321>/Enable'
11148 */
11149 /* Constant: '<S276>/enable' */
11150 if (L4_MABX_P.enable_Value > 0.0) {
11151 if (!L4_MABX_DW.Slew_at_event_MODE_d) {
11152 /* InitializeConditions for UnitDelay: '<S323>/Unit_Delay' */
11153 L4_MABX_DW.Unit_Delay_DSTATE_bd = L4_MABX_P.Unit_Delay_InitialCondition_ls;
11154
11155 /* InitializeConditions for UnitDelay: '<S324>/Unit_Delay' */
11156 L4_MABX_DW.Unit_Delay_DSTATE_jt = L4_MABX_P.Unit_Delay_InitialCondition_i0;
11157
11158 /* InitializeConditions for UnitDelay: '<S327>/FixPt Unit Delay2' */
11159 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ji =
11160 L4_MABX_P.FixPtUnitDelay2_InitialCondit_c;
11161
11162 /* InitializeConditions for UnitDelay: '<S327>/FixPt Unit Delay1' */
11163 L4_MABX_DW.FixPtUnitDelay1_DSTATE_o =
11164 L4_MABX_P.FixPtUnitDelay1_InitialCondit_f;
11165
11166 /* InitializeConditions for UnitDelay: '<S322>/Unit_Delay' */
11167 L4_MABX_DW.Unit_Delay_DSTATE_ll = L4_MABX_P.Unit_Delay_InitialCondition_ld;
11168 L4_MABX_DW.Slew_at_event_MODE_d = true;
11169 }
11170
11171 /* UnitDelay: '<S323>/Unit_Delay' */
11172 L4_MABX_B.Unit_Delay_o3 = L4_MABX_DW.Unit_Delay_DSTATE_bd;
11173
11174 /* Logic: '<S323>/Logical Operator1' */
11175 L4_MABX_B.LogicalOperator1_gw = !L4_MABX_B.Unit_Delay_o3;
11176
11177 /* Logic: '<S323>/Logical Operator' */
11178 L4_MABX_B.LogicalOperator_d2 = (L4_MABX_B.DataTypeConversion_l1 &&
11179 L4_MABX_B.LogicalOperator1_gw);
11180
11181 /* UnitDelay: '<S324>/Unit_Delay' */
11182 L4_MABX_B.Unit_Delay_hj = L4_MABX_DW.Unit_Delay_DSTATE_jt;
11183
11184 /* Logic: '<S324>/Logical Operator1' */
11185 L4_MABX_B.LogicalOperator1_h = (L4_MABX_B.LogicalOperator_d2 ||
11186 L4_MABX_B.Unit_Delay_hj);
11187
11188 /* UnitDelay: '<S327>/FixPt Unit Delay2' */
11189 L4_MABX_B.FixPtUnitDelay2_h5 = L4_MABX_DW.FixPtUnitDelay2_DSTATE_ji;
11190
11191 /* UnitDelay: '<S327>/FixPt Unit Delay1' */
11192 L4_MABX_B.Xold_g = L4_MABX_DW.FixPtUnitDelay1_DSTATE_o;
11193
11194 /* Switch: '<S327>/Init' */
11195 if (L4_MABX_B.FixPtUnitDelay2_h5 != 0) {
11196 L4_MABX_B.Init_j = L4_MABX_B.Switch_h;
11197 } else {
11198 L4_MABX_B.Init_j = L4_MABX_B.Xold_g;
11199 }
11200
11201 /* End of Switch: '<S327>/Init' */
11202
11203 /* Abs: '<S324>/Abs' incorporates:
11204 * Constant: '<S276>/Constant3'
11205 */
11206 L4_MABX_B.Abs_a = fabs(L4_MABX_P.Constant3_Value_j);
11207
11208 /* Product: '<S324>/Product1' incorporates:
11209 * Constant: '<S276>/Constant2'
11210 */
11211 L4_MABX_B.Product1_i3 = L4_MABX_B.Abs_a * L4_MABX_P.Constant2_Value_p;
11212
11213 /* Sum: '<S324>/Add1' */
11214 L4_MABX_B.Add1_b0 = L4_MABX_B.Init_j + L4_MABX_B.Product1_i3;
11215
11216 /* MinMax: '<S324>/MinMax2' */
11217 DeltaTime = L4_MABX_B.Switch_h;
11218 PositionFinalLimited = L4_MABX_B.Add1_b0;
11219 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11220 PositionFinalLimited = DeltaTime;
11221 }
11222
11223 L4_MABX_B.MinMax2_l = PositionFinalLimited;
11224
11225 /* End of MinMax: '<S324>/MinMax2' */
11226
11227 /* Abs: '<S324>/Abs1' incorporates:
11228 * Constant: '<S276>/Constant4'
11229 */
11230 L4_MABX_B.Abs1_e = fabs(L4_MABX_P.Constant4_Value_bq);
11231
11232 /* Product: '<S324>/Product2' incorporates:
11233 * Constant: '<S276>/Constant2'
11234 */
11235 L4_MABX_B.Product2_k = L4_MABX_P.Constant2_Value_p * L4_MABX_B.Abs1_e;
11236
11237 /* Sum: '<S324>/Subtract1' */
11238 L4_MABX_B.Subtract1_gl = L4_MABX_B.Init_j - L4_MABX_B.Product2_k;
11239
11240 /* MinMax: '<S324>/MinMax1' */
11241 DeltaTime = L4_MABX_B.MinMax2_l;
11242 PositionFinalLimited = L4_MABX_B.Subtract1_gl;
11243 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11244 PositionFinalLimited = DeltaTime;
11245 }
11246
11247 L4_MABX_B.MinMax1_k = PositionFinalLimited;
11248
11249 /* End of MinMax: '<S324>/MinMax1' */
11250
11251 /* Outputs for Atomic SubSystem: '<S324>/If_Then_Else' */
11252 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator1_h, L4_MABX_B.Switch_h,
11253 L4_MABX_B.MinMax1_k, &L4_MABX_B.If_Then_Else_n3);
11254
11255 /* End of Outputs for SubSystem: '<S324>/If_Then_Else' */
11256
11257 /* Sum: '<S321>/Subtract' */
11258 L4_MABX_B.Subtract_ij = L4_MABX_B.Switch_h -
11259 L4_MABX_B.If_Then_Else_n3.Switch;
11260
11261 /* Abs: '<S321>/Abs' */
11262 L4_MABX_B.Abs_eu = fabs(L4_MABX_B.Subtract_ij);
11263
11264 /* RelationalOperator: '<S321>/Relational Operator1' incorporates:
11265 * Constant: '<S321>/Constant1'
11266 */
11267 L4_MABX_B.RelationalOperator1_e = (L4_MABX_B.Abs_eu <=
11268 L4_MABX_P.Constant1_Value_ah);
11269
11270 /* Logic: '<S322>/Logical Operator3' */
11271 L4_MABX_B.LogicalOperator3_a = !L4_MABX_B.RelationalOperator1_e;
11272
11273 /* UnitDelay: '<S322>/Unit_Delay' */
11274 L4_MABX_B.Unit_Delay_ig = L4_MABX_DW.Unit_Delay_DSTATE_ll;
11275
11276 /* Logic: '<S322>/Logical Operator1' */
11277 L4_MABX_B.LogicalOperator1_jo = (L4_MABX_B.DataTypeConversion_l1 ||
11278 L4_MABX_B.Unit_Delay_ig);
11279
11280 /* Logic: '<S322>/Logical Operator' */
11281 L4_MABX_B.LogicalOperator_dm = (L4_MABX_B.LogicalOperator3_a &&
11282 L4_MABX_B.LogicalOperator1_jo);
11283
11284 /* Logic: '<S322>/Logical Operator2' */
11285 L4_MABX_B.LogicalOperator2_j = !L4_MABX_B.LogicalOperator_dm;
11286
11287 /* RelationalOperator: '<S325>/min_relop' incorporates:
11288 * Constant: '<S276>/Constant3'
11289 * Constant: '<S325>/min_val'
11290 */
11291 L4_MABX_B.min_relop_dc = (L4_MABX_P.CheckStaticLowerBound_min_n <=
11292 L4_MABX_P.Constant3_Value_j);
11293
11294 /* Assertion: '<S325>/Assertion' */
11295 utAssert(L4_MABX_B.min_relop_dc);
11296 } else {
11297 if (L4_MABX_DW.Slew_at_event_MODE_d) {
11298 /* Disable for Outport: '<S321>/F_Out_slewing' */
11299 L4_MABX_B.LogicalOperator_dm = L4_MABX_P.F_Out_slewing_Y0;
11300
11301 /* Disable for Outport: '<S321>/Out' */
11302 L4_MABX_B.If_Then_Else_n3.Switch = L4_MABX_P.Out_Y0;
11303 L4_MABX_DW.Slew_at_event_MODE_d = false;
11304 }
11305 }
11306
11307 /* End of Constant: '<S276>/enable' */
11308 /* End of Outputs for SubSystem: '<S276>/Slew_at_event' */
11309
11310 /* Switch: '<S276>/Switch1' incorporates:
11311 * Constant: '<S276>/enableSlew'
11312 */
11313 if (L4_MABX_P.enableSlew_Value != 0.0) {
11314 L4_MABX_B.Switch1_j = L4_MABX_B.If_Then_Else_n3.Switch;
11315 } else {
11316 L4_MABX_B.Switch1_j = L4_MABX_B.Switch_h;
11317 }
11318
11319 /* End of Switch: '<S276>/Switch1' */
11320
11321 /* Gain: '<S80>/sign' */
11322 L4_MABX_B.SteerCtrlErrRaw = L4_MABX_P.sign_Gain * L4_MABX_B.Switch1_j;
11323
11324 /* DataTypeConversion: '<S80>/Data Type Conversion1' */
11325 L4_MABX_B.DataTypeConversion1_ev = L4_MABX_B.SteerCtrlErrRaw;
11326
11327 /* UnitDelay: '<S278>/Unit Delay' */
11328 L4_MABX_B.UnitDelay_fm = L4_MABX_DW.UnitDelay_DSTATE_d;
11329
11330 /* Switch: '<S282>/Switch1' incorporates:
11331 * Constant: '<S278>/E'
11332 * Constant: '<S278>/R'
11333 * Switch: '<S280>/Switch1'
11334 */
11335 if (L4_MABX_P.R_Value) {
11336 /* DataTypeConversion: '<S278>/Data Type Conversion1' incorporates:
11337 * Constant: '<S278>/IV'
11338 */
11339 L4_MABX_B.DataTypeConversion1_b1 = (real32_T)L4_MABX_P.IV_Value;
11340 L4_MABX_B.Switch1_fi = L4_MABX_B.DataTypeConversion1_b1;
11341 } else {
11342 if (L4_MABX_P.E_Value_j) {
11343 /* DataTypeConversion: '<S278>/Data Type Conversion' incorporates:
11344 * Switch: '<S280>/Switch1'
11345 */
11346 L4_MABX_B.DataTypeConversion_ps = (real32_T)
11347 L4_MABX_B.DataTypeConversion1_ev;
11348
11349 /* Sum: '<S278>/Add3' incorporates:
11350 * Switch: '<S280>/Switch1'
11351 */
11352 L4_MABX_B.Add3_j = L4_MABX_B.DataTypeConversion_ps -
11353 L4_MABX_B.UnitDelay_fm;
11354
11355 /* Product: '<S278>/Product1' incorporates:
11356 * Switch: '<S280>/Switch1'
11357 */
11358 L4_MABX_B.Product1_n2 = L4_MABX_B.Divide_nn * L4_MABX_B.Add3_j;
11359
11360 /* Sum: '<S278>/Add' incorporates:
11361 * Switch: '<S280>/Switch1'
11362 */
11363 L4_MABX_B.Add_f = L4_MABX_B.Product1_n2 + L4_MABX_B.UnitDelay_fm;
11364
11365 /* Switch: '<S280>/Switch1' */
11366 L4_MABX_B.Switch1_cw = L4_MABX_B.Add_f;
11367 } else {
11368 /* Switch: '<S280>/Switch1' */
11369 L4_MABX_B.Switch1_cw = L4_MABX_B.UnitDelay_fm;
11370 }
11371
11372 L4_MABX_B.Switch1_fi = L4_MABX_B.Switch1_cw;
11373 }
11374
11375 /* End of Switch: '<S282>/Switch1' */
11376
11377 /* DataTypeConversion: '<S279>/Conversion' */
11378 L4_MABX_B.Conversion = L4_MABX_B.Switch1_fi;
11379
11380 /* Abs: '<S80>/Abs' */
11381 L4_MABX_B.Abs_d = fabs(L4_MABX_B.Conversion);
11382
11383 /* Lookup_n-D: '<S80>/SteeringControlPGainErrorBased' */
11384 L4_MABX_B.SteeringControlPGainErrorBased = look1_binlxpw(L4_MABX_B.Abs_d,
11385 L4_MABX_P.SteeringControlPGainErrorBase_n,
11386 L4_MABX_P.SteeringControlPGainErrorBased_, 9U);
11387
11388 /* DataTypeConversion: '<S80>/Data Type Conversion' */
11389 L4_MABX_B.DataTypeConversion_ku = L4_MABX_B.SFunction1_o1_in;
11390
11391 /* Lookup_n-D: '<S80>/SteeringControlPGainSpeedFactor' */
11392 L4_MABX_B.SteeringControlPGainSpeedFactor = look1_binlxpw
11393 (L4_MABX_B.DataTypeConversion_ku, L4_MABX_P.SteeringControlPGainSpeedFact_i,
11394 L4_MABX_P.SteeringControlPGainSpeedFactor, 8U);
11395
11396 /* Product: '<S80>/Product1' */
11397 L4_MABX_B.SteerCtrlPgain = L4_MABX_B.SteeringControlPGainErrorBased *
11398 L4_MABX_B.SteeringControlPGainSpeedFactor;
11399
11400 /* Gain: '<S80>/Gain' */
11401 L4_MABX_B.Gain_c = L4_MABX_P.Gain_Gain_m * L4_MABX_B.SteerCtrlPgain;
11402
11403 /* Product: '<S289>/Product' */
11404 L4_MABX_B.Product_d = L4_MABX_B.Conversion * L4_MABX_B.Gain_c;
11405
11406 /* Product: '<S289>/Divide' incorporates:
11407 * Constant: '<S273>/Constant21'
11408 * Constant: '<S273>/SteeringControlIntGain'
11409 */
11410 L4_MABX_B.Divide_ag = L4_MABX_P.Constant21_Value /
11411 L4_MABX_P.SteeringControlIntGain_Value;
11412
11413 /* Product: '<S289>/Product1' */
11414 L4_MABX_B.Product1_hr = L4_MABX_B.Product_d * L4_MABX_B.Divide_ag;
11415
11416 /* UnitDelay: '<S288>/Unit Delay' */
11417 L4_MABX_B.UnitDelay_m = L4_MABX_DW.UnitDelay_DSTATE_m;
11418
11419 /* RelationalOperator: '<S288>/Relational Operator' incorporates:
11420 * Constant: '<S273>/Constant19'
11421 */
11422 L4_MABX_B.RelationalOperator_d = (L4_MABX_B.UnitDelay_m >=
11423 L4_MABX_P.Constant19_Value);
11424
11425 /* Switch: '<S288>/Switch' incorporates:
11426 * Constant: '<S288>/Constant3'
11427 */
11428 if (L4_MABX_B.RelationalOperator_d) {
11429 L4_MABX_B.Switch_o = L4_MABX_P.Constant3_Value_pw;
11430 } else {
11431 /* RelationalOperator: '<S288>/Relational Operator1' incorporates:
11432 * Constant: '<S273>/Constant20'
11433 */
11434 L4_MABX_B.RelationalOperator1_mf = (L4_MABX_B.UnitDelay_m <=
11435 L4_MABX_P.Constant20_Value);
11436
11437 /* Switch: '<S288>/Switch1' incorporates:
11438 * Constant: '<S288>/Constant'
11439 * Constant: '<S288>/Constant2'
11440 */
11441 if (L4_MABX_B.RelationalOperator1_mf) {
11442 L4_MABX_B.Switch1_m = L4_MABX_P.Constant2_Value_hu;
11443 } else {
11444 L4_MABX_B.Switch1_m = L4_MABX_P.Constant_Value_i;
11445 }
11446
11447 /* End of Switch: '<S288>/Switch1' */
11448 L4_MABX_B.Switch_o = L4_MABX_B.Switch1_m;
11449 }
11450
11451 /* End of Switch: '<S288>/Switch' */
11452
11453 /* RelationalOperator: '<S291>/Relational Operator5' incorporates:
11454 * Constant: '<S291>/Constant5'
11455 */
11456 L4_MABX_B.RelationalOperator5_f = (L4_MABX_B.Switch_o !=
11457 L4_MABX_P.Constant5_Value_o);
11458
11459 /* Signum: '<S291>/Sign1' */
11460 PositionFinalLimited = L4_MABX_B.Product1_hr;
11461 if (PositionFinalLimited < 0.0) {
11462 L4_MABX_B.Sign1 = -1.0;
11463 } else if (PositionFinalLimited > 0.0) {
11464 L4_MABX_B.Sign1 = 1.0;
11465 } else if (PositionFinalLimited == 0.0) {
11466 L4_MABX_B.Sign1 = 0.0;
11467 } else {
11468 L4_MABX_B.Sign1 = (rtNaN);
11469 }
11470
11471 /* End of Signum: '<S291>/Sign1' */
11472
11473 /* RelationalOperator: '<S291>/Relational Operator4' incorporates:
11474 * Constant: '<S291>/Constant4'
11475 */
11476 L4_MABX_B.RelationalOperator4_la = (L4_MABX_P.Constant4_Value_j ==
11477 L4_MABX_B.Sign1);
11478
11479 /* RelationalOperator: '<S291>/Relational Operator2' incorporates:
11480 * Constant: '<S291>/Constant2'
11481 */
11482 L4_MABX_B.RelationalOperator2_o = (L4_MABX_B.Switch_o !=
11483 L4_MABX_P.Constant2_Value_g);
11484
11485 /* Logic: '<S291>/Logical Operator1' */
11486 L4_MABX_B.LogicalOperator1_ji = (L4_MABX_B.RelationalOperator4_la &&
11487 L4_MABX_B.RelationalOperator2_o);
11488
11489 /* RelationalOperator: '<S291>/Relational Operator1' incorporates:
11490 * Constant: '<S291>/Constant1'
11491 */
11492 L4_MABX_B.RelationalOperator1_ie = (L4_MABX_B.Switch_o !=
11493 L4_MABX_P.Constant1_Value_ly);
11494
11495 /* RelationalOperator: '<S291>/Relational Operator3' incorporates:
11496 * Constant: '<S291>/Constant3'
11497 */
11498 L4_MABX_B.RelationalOperator3_p = (L4_MABX_P.Constant3_Value_g ==
11499 L4_MABX_B.Sign1);
11500
11501 /* Logic: '<S291>/Logical Operator2' */
11502 L4_MABX_B.LogicalOperator2_o = (L4_MABX_B.RelationalOperator1_ie &&
11503 L4_MABX_B.RelationalOperator3_p);
11504
11505 /* Logic: '<S291>/Logical Operator' */
11506 L4_MABX_B.LogicalOperator_bs = (L4_MABX_B.LogicalOperator1_ji ||
11507 L4_MABX_B.LogicalOperator2_o);
11508
11509 /* Logic: '<S291>/Logical Operator3' */
11510 L4_MABX_B.LogicalOperator3_oi = (L4_MABX_B.RelationalOperator5_f &&
11511 L4_MABX_B.LogicalOperator_bs);
11512
11513 /* Switch: '<S291>/Switch1' incorporates:
11514 * Constant: '<S291>/Constant'
11515 */
11516 if (L4_MABX_B.LogicalOperator3_oi) {
11517 L4_MABX_B.Switch1_jw = L4_MABX_B.Product1_hr;
11518 } else {
11519 L4_MABX_B.Switch1_jw = L4_MABX_P.Constant_Value_o;
11520 }
11521
11522 /* End of Switch: '<S291>/Switch1' */
11523
11524 /* UnitDelay: '<S289>/Unit Delay' */
11525 L4_MABX_B.UnitDelay_o = L4_MABX_DW.UnitDelay_DSTATE_m0;
11526
11527 /* Sum: '<S289>/Add' */
11528 L4_MABX_B.Add_px = L4_MABX_B.Switch1_jw + L4_MABX_B.UnitDelay_o;
11529
11530 /* Product: '<S289>/Divide1' incorporates:
11531 * Constant: '<S273>/Constant21'
11532 * Constant: '<S273>/SteeringControlDGain'
11533 */
11534 L4_MABX_B.Divide1_b = L4_MABX_P.SteeringControlDGain_Value *
11535 L4_MABX_B.Product_d / L4_MABX_P.Constant21_Value;
11536
11537 /* UnitDelay: '<S289>/Unit Delay1' */
11538 L4_MABX_B.UnitDelay1_e = L4_MABX_DW.UnitDelay1_DSTATE_k;
11539
11540 /* Sum: '<S289>/Add3' */
11541 L4_MABX_B.Add3 = L4_MABX_B.Divide1_b - L4_MABX_B.UnitDelay1_e;
11542
11543 /* Sum: '<S289>/Add1' */
11544 L4_MABX_B.Add1_m = (L4_MABX_B.Product_d + L4_MABX_B.Add_px) + L4_MABX_B.Add3;
11545
11546 /* RelationalOperator: '<S290>/LowerRelop1' incorporates:
11547 * Constant: '<S273>/Constant19'
11548 */
11549 L4_MABX_B.LowerRelop1 = (L4_MABX_B.Add1_m > L4_MABX_P.Constant19_Value);
11550
11551 /* RelationalOperator: '<S290>/UpperRelop' incorporates:
11552 * Constant: '<S273>/Constant20'
11553 */
11554 L4_MABX_B.UpperRelop = (L4_MABX_B.Add1_m < L4_MABX_P.Constant20_Value);
11555
11556 /* Switch: '<S290>/Switch' incorporates:
11557 * Constant: '<S273>/Constant20'
11558 */
11559 if (L4_MABX_B.UpperRelop) {
11560 L4_MABX_B.Switch_p = L4_MABX_P.Constant20_Value;
11561 } else {
11562 L4_MABX_B.Switch_p = L4_MABX_B.Add1_m;
11563 }
11564
11565 /* End of Switch: '<S290>/Switch' */
11566
11567 /* Switch: '<S290>/Switch2' incorporates:
11568 * Constant: '<S273>/Constant19'
11569 */
11570 if (L4_MABX_B.LowerRelop1) {
11571 L4_MABX_B.Switch2_i = L4_MABX_P.Constant19_Value;
11572 } else {
11573 L4_MABX_B.Switch2_i = L4_MABX_B.Switch_p;
11574 }
11575
11576 /* End of Switch: '<S290>/Switch2' */
11577
11578 /* RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' */
11579 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
11580 L4_MABX_B.previewSteeringAngle_b =
11581 L4_MABX_DW.TmpRTBAtrad2deg1Inport1_Buffer0;
11582 }
11583
11584 /* Gain: '<S80>/rad2deg1' */
11585 L4_MABX_B.rad2deg1 = L4_MABX_P.rad2deg1_Gain *
11586 L4_MABX_B.previewSteeringAngle_b;
11587
11588 /* Sum: '<S80>/Add2' incorporates:
11589 * Constant: '<S80>/steeringOffset'
11590 */
11591 L4_MABX_B.Add2 = (L4_MABX_B.rad2deg1 + L4_MABX_B.Switch2_i) +
11592 L4_MABX_P.steeringOffset_Value;
11593
11594 /* Lookup_n-D: '<S277>/1-D Lookup Table' */
11595 L4_MABX_B.uDLookupTable_a = look1_binlxpw(L4_MABX_B.DataTypeConversion_ku,
11596 L4_MABX_P.uDLookupTable_bp01Data_k, L4_MABX_P.uDLookupTable_tableData_b, 8U);
11597
11598 /* Product: '<S277>/AdjustedStanleyGain' incorporates:
11599 * Constant: '<S277>/stanleySteeringControlGain'
11600 */
11601 L4_MABX_B.AdjustedStanleyGain = L4_MABX_B.uDLookupTable_a *
11602 L4_MABX_P.stanleySteeringControlGain_Valu;
11603
11604 /* Step: '<S272>/Step' */
11605 PositionFinalLimited = L4_MABX_M->Timing.t[0];
11606 if (PositionFinalLimited < L4_MABX_P.Step_Time) {
11607 L4_MABX_B.Step = L4_MABX_P.Step_Y0;
11608 } else {
11609 L4_MABX_B.Step = L4_MABX_P.Step_YFinal;
11610 }
11611
11612 /* End of Step: '<S272>/Step' */
11613
11614 /* DataTypeConversion: '<S272>/Data Type Conversion' */
11615 L4_MABX_B.DataTypeConversion_dn = (L4_MABX_B.Step != 0.0);
11616
11617 /* Product: '<S283>/Divide' incorporates:
11618 * Constant: '<S272>/Constant'
11619 * Constant: '<S272>/Constant1'
11620 */
11621 L4_MABX_B.Divide_d0 = (real32_T)(L4_MABX_P.Constant1_Value_iy /
11622 L4_MABX_P.Constant_Value_d);
11623
11624 /* RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' */
11625 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
11626 L4_MABX_B.TmpRTBAtsignCurveOffsetInport1 =
11627 L4_MABX_DW.TmpRTBAtsignCurveOffsetInport1_;
11628 }
11629
11630 /* Gain: '<S80>/signCurveOffset' */
11631 L4_MABX_B.signCurveOffset = L4_MABX_P.signCurveOffset_Gain *
11632 L4_MABX_B.TmpRTBAtsignCurveOffsetInport1;
11633
11634 /* UnitDelay: '<S283>/Unit Delay' */
11635 L4_MABX_B.UnitDelay_lj = L4_MABX_DW.UnitDelay_DSTATE_m1;
11636
11637 /* Switch: '<S287>/Switch1' incorporates:
11638 * Constant: '<S283>/E'
11639 * Switch: '<S285>/Switch1'
11640 */
11641 if (L4_MABX_B.DataTypeConversion_dn) {
11642 /* DataTypeConversion: '<S283>/Data Type Conversion1' incorporates:
11643 * Constant: '<S283>/IV'
11644 */
11645 L4_MABX_B.DataTypeConversion1_gp = (real32_T)L4_MABX_P.IV_Value_o;
11646 L4_MABX_B.Switch1_pb = L4_MABX_B.DataTypeConversion1_gp;
11647 } else {
11648 if (L4_MABX_P.E_Value_ct) {
11649 /* DataTypeConversion: '<S283>/Data Type Conversion' incorporates:
11650 * Switch: '<S285>/Switch1'
11651 */
11652 L4_MABX_B.DataTypeConversion_mv = (real32_T)L4_MABX_B.signCurveOffset;
11653
11654 /* Sum: '<S283>/Add3' incorporates:
11655 * Switch: '<S285>/Switch1'
11656 */
11657 L4_MABX_B.Add3_p = L4_MABX_B.DataTypeConversion_mv -
11658 L4_MABX_B.UnitDelay_lj;
11659
11660 /* Product: '<S283>/Product1' incorporates:
11661 * Switch: '<S285>/Switch1'
11662 */
11663 L4_MABX_B.Product1_ce = L4_MABX_B.Divide_d0 * L4_MABX_B.Add3_p;
11664
11665 /* Sum: '<S283>/Add' incorporates:
11666 * Switch: '<S285>/Switch1'
11667 */
11668 L4_MABX_B.Add_a = L4_MABX_B.Product1_ce + L4_MABX_B.UnitDelay_lj;
11669
11670 /* Switch: '<S285>/Switch1' */
11671 L4_MABX_B.Switch1_aq = L4_MABX_B.Add_a;
11672 } else {
11673 /* Switch: '<S285>/Switch1' */
11674 L4_MABX_B.Switch1_aq = L4_MABX_B.UnitDelay_lj;
11675 }
11676
11677 L4_MABX_B.Switch1_pb = L4_MABX_B.Switch1_aq;
11678 }
11679
11680 /* End of Switch: '<S287>/Switch1' */
11681
11682 /* DataTypeConversion: '<S284>/Conversion' */
11683 L4_MABX_B.Conversion_b = L4_MABX_B.Switch1_pb;
11684
11685 /* Gain: '<S80>/mm2m' */
11686 L4_MABX_B.mm2m = L4_MABX_P.mm2m_Gain * L4_MABX_B.correctedError;
11687
11688 /* Switch: '<S80>/Switch3' incorporates:
11689 * Constant: '<S80>/usePIDyForStanley'
11690 */
11691 if (L4_MABX_P.usePIDyForStanley_Value != 0.0) {
11692 L4_MABX_B.Switch3 = L4_MABX_B.Switch2_i;
11693 } else {
11694 L4_MABX_B.Switch3 = L4_MABX_B.mm2m;
11695 }
11696
11697 /* End of Switch: '<S80>/Switch3' */
11698
11699 /* Gain: '<S80>/sign3' */
11700 L4_MABX_B.sign3 = L4_MABX_P.sign3_Gain * L4_MABX_B.Switch3;
11701
11702 /* Sum: '<S80>/crossTrackError' */
11703 L4_MABX_B.crossTrackError = L4_MABX_B.Conversion_b + L4_MABX_B.sign3;
11704
11705 /* Product: '<S277>/Product' */
11706 L4_MABX_B.Product_p = L4_MABX_B.AdjustedStanleyGain *
11707 L4_MABX_B.crossTrackError;
11708
11709 /* Saturate: '<S277>/Saturation' */
11710 DeltaTime = L4_MABX_B.DataTypeConversion_ku;
11711 Time56 = L4_MABX_P.Saturation_LowerSat_bq;
11712 PositionFinalLimited = L4_MABX_P.Saturation_UpperSat_e;
11713 if (DeltaTime > PositionFinalLimited) {
11714 L4_MABX_B.Saturation_a = PositionFinalLimited;
11715 } else if (DeltaTime < Time56) {
11716 L4_MABX_B.Saturation_a = Time56;
11717 } else {
11718 L4_MABX_B.Saturation_a = DeltaTime;
11719 }
11720
11721 /* End of Saturate: '<S277>/Saturation' */
11722
11723 /* Gain: '<S277>/kph2mps_' */
11724 L4_MABX_B.kph2mps_ = L4_MABX_P.kph2mps_Gain * L4_MABX_B.Saturation_a;
11725
11726 /* Trigonometry: '<S277>/Trigonometric Function' */
11727 L4_MABX_B.TrigonometricFunction_p = rt_atan2d_snf(L4_MABX_B.Product_p,
11728 L4_MABX_B.kph2mps_);
11729
11730 /* Gain: '<S80>/deg2rad1' */
11731 L4_MABX_B.deg2rad1 = L4_MABX_P.deg2rad1_Gain * L4_MABX_B.uDLookupTable1;
11732
11733 /* RateTransition: '<S277>/TmpRTBAtAdd2Inport2' */
11734 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
11735 L4_MABX_B.TmpRTBAtAdd2Inport2 = L4_MABX_DW.TmpRTBAtAdd2Inport2_Buffer0;
11736 }
11737
11738 /* Sum: '<S277>/Add2' */
11739 L4_MABX_B.Add2_g = L4_MABX_B.deg2rad1 - L4_MABX_B.TmpRTBAtAdd2Inport2;
11740
11741 /* Gain: '<S277>/desHeadingWeight' */
11742 L4_MABX_B.desHeadingWeight = L4_MABX_P.desHeadingWeight_Gain *
11743 L4_MABX_B.Add2_g;
11744
11745 /* Sum: '<S277>/Add1' */
11746 L4_MABX_B.Add1_h = L4_MABX_B.TrigonometricFunction_p +
11747 L4_MABX_B.desHeadingWeight;
11748
11749 /* DataTypeConversion: '<S299>/Data Type Conversion' incorporates:
11750 * Constant: '<S299>/RATE_LIMITER_ENABLE_APV'
11751 */
11752 L4_MABX_B.DataTypeConversion_l5 = (real_T)RATE_LIMITER_ENABLE_APV;
11753
11754 /* Lookup_n-D: '<S299>/Saturation Speed Lookup' */
11755 L4_MABX_B.SaturationSpeedLookup = look1_binlcapw
11756 (L4_MABX_B.DataTypeConversion_ku, L4_MABX_P.SaturationSpeedLookup_bp01Data,
11757 L4_MABX_P.SaturationSpeedLookup_tableData, 5U);
11758
11759 /* RelationalOperator: '<S293>/Relational Operator1' incorporates:
11760 * Constant: '<S274>/Constant3'
11761 */
11762 L4_MABX_B.RelationalOperator1_gr = (Curvature >=
11763 Lateral_Control_Curvature_Limit);
11764
11765 /* RelationalOperator: '<S293>/Relational Operator' incorporates:
11766 * Constant: '<S274>/Constant5'
11767 */
11768 PositionFinalLimited = -Lateral_Control_Curvature_Limit;
11769 L4_MABX_B.RelationalOperator_oj = (Curvature <= PositionFinalLimited);
11770
11771 /* Outputs for Atomic SubSystem: '<S293>/If_Then_Else1' */
11772 /* Constant: '<S274>/Constant5' */
11773 PositionFinalLimited = -Lateral_Control_Curvature_Limit;
11774 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_oj, PositionFinalLimited,
11775 Curvature, &L4_MABX_B.If_Then_Else1_d);
11776
11777 /* End of Outputs for SubSystem: '<S293>/If_Then_Else1' */
11778
11779 /* Outputs for Atomic SubSystem: '<S293>/If_Then_Else' */
11780
11781 /* Constant: '<S274>/Constant3' */
11782 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_gr,
11783 Lateral_Control_Curvature_Limit,
11784 L4_MABX_B.If_Then_Else1_d.Switch,
11785 &L4_MABX_B.If_Then_Else_p);
11786
11787 /* End of Outputs for SubSystem: '<S293>/If_Then_Else' */
11788
11789 /* Abs: '<S299>/Abs' */
11790 L4_MABX_B.Abs_ig = fabs(L4_MABX_B.If_Then_Else_p.Switch);
11791
11792 /* Lookup_n-D: '<S299>/Curvature Lookup Table' */
11793 L4_MABX_B.RateCurvature = look1_binlcapw(L4_MABX_B.Abs_ig,
11794 L4_MABX_P.CurvatureLookupTable_bp01Data,
11795 L4_MABX_P.CurvatureLookupTable_tableData, 4U);
11796
11797 /* DiscreteTransferFcn: '<S274>/Error 5Hz LPF' */
11798 PositionFinalLimited = L4_MABX_P.Error5HzLPF_NumCoef[1] *
11799 L4_MABX_DW.Error5HzLPF_states[0];
11800 PositionFinalLimited += L4_MABX_P.Error5HzLPF_NumCoef[2] *
11801 L4_MABX_DW.Error5HzLPF_states[1];
11802 PositionFinalLimited += L4_MABX_P.Error5HzLPF_NumCoef[3] *
11803 L4_MABX_DW.Error5HzLPF_states[2];
11804 L4_MABX_B.Lateral_Control_Heading_Error = PositionFinalLimited;
11805
11806 /* Abs: '<S299>/Abs1' */
11807 L4_MABX_B.Abs1_ft = fabs(L4_MABX_B.Lateral_Control_Heading_Error);
11808
11809 /* Lookup_n-D: '<S299>/Error Lookup Table' */
11810 L4_MABX_B.RateError = look1_binlcapw(L4_MABX_B.Abs1_ft,
11811 L4_MABX_P.ErrorLookupTable_bp01Data, L4_MABX_P.ErrorLookupTable_tableData,
11812 4U);
11813
11814 /* MinMax: '<S299>/Max' */
11815 DeltaTime = L4_MABX_B.RateCurvature;
11816 PositionFinalLimited = L4_MABX_B.RateError;
11817 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11818 PositionFinalLimited = DeltaTime;
11819 }
11820
11821 L4_MABX_B.Max = PositionFinalLimited;
11822
11823 /* End of MinMax: '<S299>/Max' */
11824
11825 /* Lookup_n-D: '<S299>/Speed Lookup Table' */
11826 L4_MABX_B.RateSpeed = look1_binlcapw(L4_MABX_B.DataTypeConversion_ku,
11827 L4_MABX_P.SpeedLookupTable_bp01Data, L4_MABX_P.SpeedLookupTable_tableData,
11828 5U);
11829
11830 /* MinMax: '<S299>/Min' */
11831 DeltaTime = L4_MABX_B.Max;
11832 PositionFinalLimited = L4_MABX_B.RateSpeed;
11833 if ((DeltaTime < PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
11834 PositionFinalLimited = DeltaTime;
11835 }
11836
11837 L4_MABX_B.Min = PositionFinalLimited;
11838
11839 /* End of MinMax: '<S299>/Min' */
11840
11841 /* RateLimiter: '<S299>/Limit Rate Limiter' */
11842 PositionFinalLimited = L4_MABX_B.Min - L4_MABX_DW.PrevY;
11843 if (PositionFinalLimited > L4_MABX_P.LimitRateLimiter_RisingLim) {
11844 L4_MABX_B.RateLimitUpper = L4_MABX_DW.PrevY +
11845 L4_MABX_P.LimitRateLimiter_RisingLim;
11846 } else if (PositionFinalLimited < L4_MABX_P.LimitRateLimiter_FallingLim) {
11847 L4_MABX_B.RateLimitUpper = L4_MABX_DW.PrevY +
11848 L4_MABX_P.LimitRateLimiter_FallingLim;
11849 } else {
11850 L4_MABX_B.RateLimitUpper = L4_MABX_B.Min;
11851 }
11852
11853 L4_MABX_DW.PrevY = L4_MABX_B.RateLimitUpper;
11854
11855 /* End of RateLimiter: '<S299>/Limit Rate Limiter' */
11856
11857 /* SampleTimeMath: '<S308>/sample time'
11858 *
11859 * About '<S308>/sample time':
11860 * y = K where K = ( w * Ts )
11861 */
11862 L4_MABX_B.sampletime = L4_MABX_P.sampletime_WtEt;
11863
11864 /* Product: '<S308>/delta rise limit' */
11865 L4_MABX_B.deltariselimit = L4_MABX_B.RateLimitUpper * L4_MABX_B.sampletime;
11866
11867 /* RelationalOperator: '<S295>/Relational Operator1' incorporates:
11868 * Constant: '<S274>/Constant'
11869 */
11870 L4_MABX_B.RelationalOperator1_p = (L4_MABX_B.Lateral_Control_Heading_Error >=
11871 Lateral_Control_Error_Limit);
11872
11873 /* RelationalOperator: '<S295>/Relational Operator' incorporates:
11874 * Constant: '<S274>/Constant1'
11875 */
11876 PositionFinalLimited = -Lateral_Control_Error_Limit;
11877 L4_MABX_B.RelationalOperator_hy = (L4_MABX_B.Lateral_Control_Heading_Error <=
11878 PositionFinalLimited);
11879
11880 /* Outputs for Atomic SubSystem: '<S295>/If_Then_Else1' */
11881 /* Constant: '<S274>/Constant1' */
11882 PositionFinalLimited = -Lateral_Control_Error_Limit;
11883 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_hy, PositionFinalLimited,
11884 L4_MABX_B.Lateral_Control_Heading_Error,
11885 &L4_MABX_B.If_Then_Else1_k);
11886
11887 /* End of Outputs for SubSystem: '<S295>/If_Then_Else1' */
11888
11889 /* Outputs for Atomic SubSystem: '<S295>/If_Then_Else' */
11890
11891 /* Constant: '<S274>/Constant' */
11892 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_p,
11893 Lateral_Control_Error_Limit,
11894 L4_MABX_B.If_Then_Else1_k.Switch,
11895 &L4_MABX_B.If_Then_Else_pn);
11896
11897 /* End of Outputs for SubSystem: '<S295>/If_Then_Else' */
11898
11899 /* Outputs for Atomic SubSystem: '<S274>/If_Then_Else1' */
11900
11901 /* Constant: '<S274>/Zero' */
11902 L4_MABX_If_Then_Else_g(AutonomousEnabled, L4_MABX_B.If_Then_Else_pn.Switch,
11903 L4_MABX_P.Zero_Value, &L4_MABX_B.If_Then_Else1_m);
11904
11905 /* End of Outputs for SubSystem: '<S274>/If_Then_Else1' */
11906
11907 /* Gain: '<S298>/Proportional Gain' */
11908 L4_MABX_B.ProportionalGain = Lateral_Control_P *
11909 L4_MABX_B.If_Then_Else1_m.Switch;
11910
11911 /* DiscreteIntegrator: '<S298>/Integrator' */
11912 if (AutonomousEnabled && (L4_MABX_DW.Integrator_PrevResetState <= 0)) {
11913 L4_MABX_DW.Integrator_DSTATE = L4_MABX_P.Integrator_IC;
11914 }
11915
11916 L4_MABX_B.Integrator = L4_MABX_DW.Integrator_DSTATE;
11917
11918 /* End of DiscreteIntegrator: '<S298>/Integrator' */
11919
11920 /* Gain: '<S298>/Derivative Gain' */
11921 L4_MABX_B.DerivativeGain = Lateral_Control_D *
11922 L4_MABX_B.If_Then_Else1_m.Switch;
11923
11924 /* DiscreteIntegrator: '<S298>/Filter' */
11925 if (AutonomousEnabled && (L4_MABX_DW.Filter_PrevResetState <= 0)) {
11926 L4_MABX_DW.Filter_DSTATE = L4_MABX_P.Filter_IC;
11927 }
11928
11929 L4_MABX_B.Filter = L4_MABX_DW.Filter_DSTATE;
11930
11931 /* End of DiscreteIntegrator: '<S298>/Filter' */
11932
11933 /* Sum: '<S298>/SumD' */
11934 L4_MABX_B.SumD = L4_MABX_B.DerivativeGain - L4_MABX_B.Filter;
11935
11936 /* Gain: '<S298>/Filter Coefficient' */
11937 L4_MABX_B.FilterCoefficient = L4_MABX_P.PIDController_N * L4_MABX_B.SumD;
11938
11939 /* Sum: '<S298>/Sum' */
11940 L4_MABX_B.Sum_c = (L4_MABX_B.ProportionalGain + L4_MABX_B.Integrator) +
11941 L4_MABX_B.FilterCoefficient;
11942
11943 /* Saturate: '<S298>/Saturate' */
11944 DeltaTime = L4_MABX_B.Sum_c;
11945 Time56 = L4_MABX_P.PIDController_LowerSaturationLi;
11946 PositionFinalLimited = L4_MABX_P.PIDController_UpperSaturationLi;
11947 if (DeltaTime > PositionFinalLimited) {
11948 L4_MABX_B.Saturate = PositionFinalLimited;
11949 } else if (DeltaTime < Time56) {
11950 L4_MABX_B.Saturate = Time56;
11951 } else {
11952 L4_MABX_B.Saturate = DeltaTime;
11953 }
11954
11955 /* End of Saturate: '<S298>/Saturate' */
11956
11957 /* UnitDelay: '<S300>/Delay Input' */
11958 L4_MABX_B.Uk1_m = L4_MABX_DW.DelayInput_DSTATE;
11959
11960 /* Gain: '<S300>/GainZero' */
11961 L4_MABX_B.ZeroUk1 = Lateral_Control_Zero * L4_MABX_B.Uk1_m;
11962
11963 /* UnitDelay: '<S300>/Delay Output' */
11964 L4_MABX_B.Yk1 = L4_MABX_DW.DelayOutput_DSTATE;
11965
11966 /* Gain: '<S300>/GainPole' */
11967 L4_MABX_B.PoleYk1 = Lateral_Control_Pole * L4_MABX_B.Yk1;
11968
11969 /* Sum: '<S300>/Sum' */
11970 L4_MABX_B.PoleYk1UkZeroUk1 = (L4_MABX_B.Saturate - L4_MABX_B.ZeroUk1) +
11971 L4_MABX_B.PoleYk1;
11972
11973 /* DataTypeConversion: '<S300>/Downcast' */
11974 L4_MABX_B.Downcast = L4_MABX_B.PoleYk1UkZeroUk1;
11975
11976 /* Lookup_n-D: '<S274>/1-D Lookup Table' */
11977 L4_MABX_B.uDLookupTable_j = look1_binlxpw(ReAX_ActualHandwheelPos,
11978 L4_MABX_P.uDLookupTable_bp01Data_d, L4_MABX_P.uDLookupTable_tableData_d, 71U);
11979
11980 /* Gain: '<S274>/deg2rad' */
11981 L4_MABX_B.deg2rad = L4_MABX_P.deg2rad_Gain_l * L4_MABX_B.uDLookupTable_j;
11982
11983 /* Gain: '<S274>/PGain' */
11984 L4_MABX_B.PGain = Lateral_Control_P * L4_MABX_B.If_Then_Else_pn.Switch;
11985
11986 /* DiscreteTransferFcn: '<S274>/5Hz LPF' */
11987 PositionFinalLimited = L4_MABX_P.uHzLPF_NumCoef[1] * L4_MABX_DW.uHzLPF_states
11988 [0];
11989 PositionFinalLimited += L4_MABX_P.uHzLPF_NumCoef[2] *
11990 L4_MABX_DW.uHzLPF_states[1];
11991 PositionFinalLimited += L4_MABX_P.uHzLPF_NumCoef[3] *
11992 L4_MABX_DW.uHzLPF_states[2];
11993 L4_MABX_B.uHzLPF = PositionFinalLimited;
11994
11995 /* Sum: '<S274>/Sum3' */
11996 L4_MABX_B.Sum3 = (L4_MABX_B.deg2rad - L4_MABX_B.PGain) - L4_MABX_B.uHzLPF;
11997
11998 /* DiscreteIntegrator: '<S292>/Discrete-Time Integrator' */
11999 if (L4_MABX_DW.DiscreteTimeIntegrator_IC_LOADI != 0) {
12000 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE = L4_MABX_B.Sum3;
12001 }
12002
12003 if (AutonomousEnabled && (L4_MABX_DW.DiscreteTimeIntegrator_PrevRese <= 0)) {
12004 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE = L4_MABX_B.Sum3;
12005 }
12006
12007 L4_MABX_B.DiscreteTimeIntegrator = L4_MABX_DW.DiscreteTimeIntegrator_DSTATE;
12008
12009 /* End of DiscreteIntegrator: '<S292>/Discrete-Time Integrator' */
12010
12011 /* Sum: '<S274>/Sum4' */
12012 L4_MABX_B.Sum4 = L4_MABX_B.Downcast + L4_MABX_B.DiscreteTimeIntegrator;
12013
12014 /* Sum: '<S274>/Sum1' */
12015 Lateral_Control_Output = L4_MABX_B.Sum4 + L4_MABX_B.uHzLPF;
12016
12017 /* UnitDelay: '<S308>/Delay Input2' */
12018 L4_MABX_B.Yk1_p = L4_MABX_DW.DelayInput2_DSTATE;
12019
12020 /* Sum: '<S308>/Difference Inputs1' */
12021 L4_MABX_B.UkYk1 = Lateral_Control_Output - L4_MABX_B.Yk1_p;
12022
12023 /* RelationalOperator: '<S310>/LowerRelop1' */
12024 L4_MABX_B.LowerRelop1_l = (L4_MABX_B.UkYk1 > L4_MABX_B.deltariselimit);
12025
12026 /* Gain: '<S299>/Gain3' */
12027 L4_MABX_B.RateLimitLower = L4_MABX_P.Gain3_Gain_p * L4_MABX_B.RateLimitUpper;
12028
12029 /* Product: '<S308>/delta fall limit' */
12030 L4_MABX_B.deltafalllimit = L4_MABX_B.RateLimitLower * L4_MABX_B.sampletime;
12031
12032 /* RelationalOperator: '<S310>/UpperRelop' */
12033 L4_MABX_B.UpperRelop_k = (L4_MABX_B.UkYk1 < L4_MABX_B.deltafalllimit);
12034
12035 /* Switch: '<S310>/Switch' */
12036 if (L4_MABX_B.UpperRelop_k) {
12037 L4_MABX_B.Switch_f = L4_MABX_B.deltafalllimit;
12038 } else {
12039 L4_MABX_B.Switch_f = L4_MABX_B.UkYk1;
12040 }
12041
12042 /* End of Switch: '<S310>/Switch' */
12043
12044 /* Switch: '<S310>/Switch2' */
12045 if (L4_MABX_B.LowerRelop1_l) {
12046 L4_MABX_B.Switch2_f = L4_MABX_B.deltariselimit;
12047 } else {
12048 L4_MABX_B.Switch2_f = L4_MABX_B.Switch_f;
12049 }
12050
12051 /* End of Switch: '<S310>/Switch2' */
12052
12053 /* Sum: '<S308>/Difference Inputs2' */
12054 L4_MABX_B.DifferenceInputs2 = L4_MABX_B.Switch2_f + L4_MABX_B.Yk1_p;
12055
12056 /* RelationalOperator: '<S309>/LowerRelop1' */
12057 L4_MABX_B.LowerRelop1_e = (L4_MABX_B.DifferenceInputs2 >
12058 L4_MABX_B.SaturationSpeedLookup);
12059
12060 /* Gain: '<S299>/Gain1' */
12061 L4_MABX_B.Gain1_f = L4_MABX_P.Gain1_Gain_p * L4_MABX_B.SaturationSpeedLookup;
12062
12063 /* RelationalOperator: '<S309>/UpperRelop' */
12064 L4_MABX_B.UpperRelop_f = (L4_MABX_B.DifferenceInputs2 < L4_MABX_B.Gain1_f);
12065
12066 /* Switch: '<S309>/Switch' */
12067 if (L4_MABX_B.UpperRelop_f) {
12068 L4_MABX_B.Switch_hx = L4_MABX_B.Gain1_f;
12069 } else {
12070 L4_MABX_B.Switch_hx = L4_MABX_B.DifferenceInputs2;
12071 }
12072
12073 /* End of Switch: '<S309>/Switch' */
12074
12075 /* Switch: '<S309>/Switch2' */
12076 if (L4_MABX_B.LowerRelop1_e) {
12077 L4_MABX_B.Switch2_k = L4_MABX_B.SaturationSpeedLookup;
12078 } else {
12079 L4_MABX_B.Switch2_k = L4_MABX_B.Switch_hx;
12080 }
12081
12082 /* End of Switch: '<S309>/Switch2' */
12083
12084 /* Outputs for Atomic SubSystem: '<S299>/If_Then_Else' */
12085 L4_MABX_If_Then_Else_c(L4_MABX_B.DataTypeConversion_l5, L4_MABX_B.Switch2_k,
12086 Lateral_Control_Output, &L4_MABX_B.If_Then_Else_co);
12087
12088 /* End of Outputs for SubSystem: '<S299>/If_Then_Else' */
12089
12090 /* SignalConversion: '<S299>/TmpSignal ConversionAtIf_Then_ElseOutport1' */
12091 Lateral_Control_Rate_Limiter_Output = L4_MABX_B.If_Then_Else_co.Switch;
12092
12093 /* Outputs for Atomic SubSystem: '<S274>/If_Then_Else' */
12094 L4_MABX_If_Then_Else_g(AutonomousEnabled, Lateral_Control_Rate_Limiter_Output,
12095 L4_MABX_B.deg2rad, &L4_MABX_B.If_Then_Else_m);
12096
12097 /* End of Outputs for SubSystem: '<S274>/If_Then_Else' */
12098
12099 /* DataTypeConversion: '<S80>/Data Type Conversion6' */
12100 L4_MABX_B.DataTypeConversion6_p = L4_MABX_B.If_Then_Else_m.Switch;
12101
12102 /* Gain: '<S80>/rad2deg' */
12103 L4_MABX_B.rad2deg = L4_MABX_P.rad2deg_Gain * L4_MABX_B.DataTypeConversion6_p;
12104
12105 /* Gain: '<S80>/sign1' */
12106 SteerCommandDeg = L4_MABX_P.sign1_Gain * L4_MABX_B.rad2deg;
12107
12108 /* MultiPortSwitch: '<S80>/Multiport Switch1' incorporates:
12109 * Constant: '<S80>/LONG_SPEED_SRC_SELECTOR_APV'
12110 * Constant: '<S80>/SteeringOverrideVal1'
12111 */
12112 switch (LONG_SPEED_SRC_SELECTOR_APV) {
12113 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_GPS_PATH:
12114 /* MultiPortSwitch: '<S80>/Multiport Switch' incorporates:
12115 * Constant: '<S80>/SteeringControlSRC'
12116 * Constant: '<S80>/SteeringOverrideVal'
12117 */
12118 switch (L4_MABX_P.SteeringControlSRC_Value) {
12119 case 0:
12120 L4_MABX_B.MultiportSwitch_f = L4_MABX_P.SteeringOverrideVal_Value;
12121 break;
12122
12123 case 1:
12124 L4_MABX_B.MultiportSwitch_f = L4_MABX_B.Switch2_i;
12125 break;
12126
12127 case 2:
12128 /* DataTypeConversion: '<S80>/Data Type Conversion2' */
12129 L4_MABX_B.DataTypeConversion2_ox = L4_MABX_B.Add2;
12130 L4_MABX_B.MultiportSwitch_f = L4_MABX_B.DataTypeConversion2_ox;
12131 break;
12132
12133 default:
12134 /* DataTypeConversion: '<S80>/Data Type Conversion3' */
12135 L4_MABX_B.DataTypeConversion3_p = L4_MABX_B.Add1_h;
12136 L4_MABX_B.MultiportSwitch_f = L4_MABX_B.DataTypeConversion3_p;
12137 break;
12138 }
12139
12140 /* End of MultiPortSwitch: '<S80>/Multiport Switch' */
12141
12142 /* Gain: '<S80>/rad2deg2' */
12143 L4_MABX_B.rad2deg2 = L4_MABX_P.rad2deg2_Gain * L4_MABX_B.MultiportSwitch_f;
12144 L4_MABX_B.MultiportSwitch1 = L4_MABX_B.rad2deg2;
12145 break;
12146
12147 case ENUM_LONG_SPEED_DEMAND_SOURCE_T_OVERRIDE:
12148 L4_MABX_B.MultiportSwitch1 = L4_MABX_P.SteeringOverrideVal1_Value;
12149 break;
12150
12151 default:
12152 L4_MABX_B.MultiportSwitch1 = SteerCommandDeg;
12153 break;
12154 }
12155
12156 /* End of MultiPortSwitch: '<S80>/Multiport Switch1' */
12157
12158 /* Lookup_n-D: '<S270>/1D_Lookup_Table' */
12159 L4_MABX_B.uD_Lookup_Table_a = look1_binlcapw(L4_MABX_B.MultiportSwitch1,
12160 STEERCTRL_WHEEL_ANGLE_STEP_MPV, STEERCTRL_WHEEL_ANGLE_DATA_MPV, 71U);
12161
12162 /* DataTypeConversion: '<S80>/Data Type Conversion4' */
12163 L4_MABX_B.numLanePoints_j = L4_MABX_B.DataTypeConversion5_e3;
12164
12165 /* DiscreteIntegrator: '<S80>/Discrete-Time Integrator' incorporates:
12166 * Constant: '<S80>/ResetIntegrator'
12167 */
12168 if ((L4_MABX_P.ResetIntegrator_Value != 0.0) ||
12169 (L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e != 0)) {
12170 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
12171 L4_MABX_P.DiscreteTimeIntegrator_IC;
12172 }
12173
12174 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e >=
12175 L4_MABX_P.DiscreteTimeIntegrator_UpperSat) {
12176 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
12177 L4_MABX_P.DiscreteTimeIntegrator_UpperSat;
12178 } else {
12179 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e <=
12180 L4_MABX_P.DiscreteTimeIntegrator_LowerSat) {
12181 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
12182 L4_MABX_P.DiscreteTimeIntegrator_LowerSat;
12183 }
12184 }
12185
12186 L4_MABX_B.DiscreteTimeIntegrator_h =
12187 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e;
12188
12189 /* End of DiscreteIntegrator: '<S80>/Discrete-Time Integrator' */
12190
12191 /* RelationalOperator: '<S281>/Lower Test' incorporates:
12192 * Constant: '<S281>/Lower Limit'
12193 */
12194 L4_MABX_B.LowerTest = (L4_MABX_P.IntervalTest_lowlimit <= L4_MABX_B.Divide_nn);
12195
12196 /* RelationalOperator: '<S281>/Upper Test' incorporates:
12197 * Constant: '<S281>/Upper Limit'
12198 */
12199 L4_MABX_B.UpperTest = (L4_MABX_B.Divide_nn <= L4_MABX_P.IntervalTest_uplimit);
12200
12201 /* Logic: '<S281>/AND' */
12202 L4_MABX_B.AND_p = (L4_MABX_B.LowerTest && L4_MABX_B.UpperTest);
12203
12204 /* Assertion: '<S278>/Assertion' */
12205 utAssert(L4_MABX_B.AND_p);
12206
12207 /* RelationalOperator: '<S286>/Lower Test' incorporates:
12208 * Constant: '<S286>/Lower Limit'
12209 */
12210 L4_MABX_B.LowerTest_l = (L4_MABX_P.IntervalTest_lowlimit_k <=
12211 L4_MABX_B.Divide_d0);
12212
12213 /* RelationalOperator: '<S286>/Upper Test' incorporates:
12214 * Constant: '<S286>/Upper Limit'
12215 */
12216 L4_MABX_B.UpperTest_e = (L4_MABX_B.Divide_d0 <=
12217 L4_MABX_P.IntervalTest_uplimit_e);
12218
12219 /* Logic: '<S286>/AND' */
12220 L4_MABX_B.AND_j = (L4_MABX_B.LowerTest_l && L4_MABX_B.UpperTest_e);
12221
12222 /* Assertion: '<S283>/Assertion' */
12223 utAssert(L4_MABX_B.AND_j);
12224
12225 /* Switch: '<S289>/Switch' incorporates:
12226 * Constant: '<S273>/Constant8'
12227 * Constant: '<S273>/Constant9'
12228 */
12229 if (L4_MABX_P.Constant8_Value_l) {
12230 L4_MABX_B.Switch_k = L4_MABX_P.Constant9_Value;
12231 } else {
12232 L4_MABX_B.Switch_k = L4_MABX_B.Add_px;
12233 }
12234
12235 /* End of Switch: '<S289>/Switch' */
12236
12237 /* RelationalOperator: '<S80>/Relational Operator' incorporates:
12238 * Constant: '<S80>/Constant1'
12239 */
12240 L4_MABX_B.RelationalOperator_oq = (L4_MABX_B.DataTypeConversion5_e3 >=
12241 L4_MABX_P.Constant1_Value_ls);
12242
12243 /* Gain: '<S292>/Gain' */
12244 L4_MABX_B.Gain_o = L4_MABX_P.Gain_Gain_p * L4_MABX_B.DiscreteTimeIntegrator;
12245
12246 /* MATLAB Function: '<S274>/Error Calc' */
12247 /* MATLAB Function 'STEERCTRL_10ms/SteerController/Error Calc': '<S294>:1' */
12248 /* '<S294>:1:3' */
12249 L4_MABX_B.error = TargetAzimuth_rad - CurrentAzimuth_rad;
12250 if (L4_MABX_B.error < -3.1415926535897931) {
12251 /* '<S294>:1:5' */
12252 /* '<S294>:1:6' */
12253 L4_MABX_B.error += 6.2831853071795862;
12254 } else {
12255 if (L4_MABX_B.error > 3.1415926535897931) {
12256 /* '<S294>:1:7' */
12257 /* '<S294>:1:8' */
12258 L4_MABX_B.error -= 6.2831853071795862;
12259 }
12260 }
12261
12262 /* End of MATLAB Function: '<S274>/Error Calc' */
12263
12264 /* Gain: '<S274>/FeedforwardGain' */
12265 L4_MABX_B.FeedforwardGain = Curvature_FF_Gain *
12266 L4_MABX_B.If_Then_Else_p.Switch;
12267
12268 /* Gain: '<S298>/Integral Gain' */
12269 L4_MABX_B.IntegralGain = Lateral_Control_I * L4_MABX_B.If_Then_Else1_m.Switch;
12270
12271 /* Sum: '<S299>/Subtract' */
12272 L4_MABX_B.Subtract_o = Lateral_Control_Output - L4_MABX_B.DifferenceInputs2;
12273
12274 /* Abs: '<S299>/Abs2' */
12275 L4_MABX_B.Abs2_k = fabs(L4_MABX_B.Subtract_o);
12276
12277 /* RelationalOperator: '<S306>/Compare' incorporates:
12278 * Constant: '<S306>/Constant'
12279 */
12280 RateLimiterActive = (L4_MABX_B.Abs2_k > L4_MABX_P.CompareToConstant_const_g);
12281
12282 /* RelationalOperator: '<S301>/Relational Operator1' incorporates:
12283 * Constant: '<S274>/Constant2'
12284 */
12285 L4_MABX_B.RelationalOperator1_fu = (YawRate >= Lateral_Control_YawRate_Limit);
12286
12287 /* RelationalOperator: '<S301>/Relational Operator' incorporates:
12288 * Constant: '<S274>/Constant4'
12289 */
12290 PositionFinalLimited = -Lateral_Control_YawRate_Limit;
12291 L4_MABX_B.RelationalOperator_l4 = (YawRate <= PositionFinalLimited);
12292
12293 /* Outputs for Atomic SubSystem: '<S301>/If_Then_Else1' */
12294 /* Constant: '<S274>/Constant4' */
12295 PositionFinalLimited = -Lateral_Control_YawRate_Limit;
12296 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator_l4, PositionFinalLimited,
12297 YawRate, &L4_MABX_B.If_Then_Else1_o0);
12298
12299 /* End of Outputs for SubSystem: '<S301>/If_Then_Else1' */
12300
12301 /* Outputs for Atomic SubSystem: '<S301>/If_Then_Else' */
12302
12303 /* Constant: '<S274>/Constant2' */
12304 L4_MABX_If_Then_Else(L4_MABX_B.RelationalOperator1_fu,
12305 Lateral_Control_YawRate_Limit,
12306 L4_MABX_B.If_Then_Else1_o0.Switch,
12307 &L4_MABX_B.If_Then_Else_m0);
12308
12309 /* End of Outputs for SubSystem: '<S301>/If_Then_Else' */
12310
12311 /* Gain: '<S274>/RateFeedbackGain' */
12312 L4_MABX_B.RateFeedbackGain = Yaw_Rate_FF_Gain *
12313 L4_MABX_B.If_Then_Else_m0.Switch;
12314
12315 /* Gain: '<S274>/UndersteerCorrection' */
12316 L4_MABX_B.UndersteerCorrection = UndersteerCorection *
12317 L4_MABX_B.FeedforwardGain;
12318
12319 /* Sum: '<S274>/Sum2' */
12320 L4_MABX_B.Sum2 = L4_MABX_B.UndersteerCorrection - L4_MABX_B.RateFeedbackGain;
12321
12322 /* UnitDelay: '<S80>/Unit Delay' */
12323 L4_MABX_B.UnitDelay_p = L4_MABX_DW.UnitDelay_DSTATE_e;
12324
12325 /* Switch: '<S80>/Switch1' incorporates:
12326 * Constant: '<S80>/Constant2'
12327 * Switch: '<S80>/Switch2'
12328 */
12329 if (L4_MABX_B.RelationalOperator_oq) {
12330 /* Product: '<S80>/Product3' incorporates:
12331 * Constant: '<S80>/SteeringControlNewIGain1'
12332 */
12333 L4_MABX_B.Product3 = L4_MABX_B.mm2m *
12334 L4_MABX_P.SteeringControlNewIGain1_Value;
12335 L4_MABX_B.Switch1_p = L4_MABX_B.Product3;
12336
12337 /* Gain: '<S80>/deg2rad' */
12338 L4_MABX_B.deg2rad_d = L4_MABX_P.deg2rad_Gain * L4_MABX_B.SFunction1_o1_ai;
12339
12340 /* Product: '<S80>/Product2' incorporates:
12341 * Constant: '<S80>/SteeringControlNewPGain1'
12342 */
12343 L4_MABX_B.Product2_my = L4_MABX_B.deg2rad_d *
12344 L4_MABX_P.SteeringControlNewPGain1_Value;
12345 L4_MABX_B.Switch2_i1 = L4_MABX_B.Product2_my;
12346 } else {
12347 L4_MABX_B.Switch1_p = L4_MABX_P.Constant2_Value_n;
12348 L4_MABX_B.Switch2_i1 = L4_MABX_B.UnitDelay_p;
12349 }
12350
12351 /* End of Switch: '<S80>/Switch1' */
12352
12353 /* Gain: '<S80>/sign2' */
12354 DesiredSteeringAngle = L4_MABX_P.sign2_Gain * L4_MABX_B.uD_Lookup_Table_a;
12355
12356 /* RelationalOperator: '<S340>/min_relop' incorporates:
12357 * Constant: '<S340>/min_val'
12358 */
12359 L4_MABX_B.min_relop_k = (L4_MABX_P.CheckStaticLowerBound_min_o <=
12360 L4_MABX_B.Divide_e);
12361
12362 /* Assertion: '<S340>/Assertion' */
12363 utAssert(L4_MABX_B.min_relop_k);
12364
12365 /* Logic: '<S349>/Logical Operator2' */
12366 L4_MABX_B.LogicalOperator2_gg = !L4_MABX_B.LogicalOperator1_p;
12367
12368 /* Switch: '<S358>/Reset' incorporates:
12369 * Constant: '<S353>/CPV'
12370 */
12371 if (L4_MABX_B.LogicalOperator1_ja) {
12372 L4_MABX_B.Xnew = L4_MABX_P.CPV_Value_h;
12373 } else {
12374 L4_MABX_B.Xnew = L4_MABX_B.If_Then_Else_gf.Switch;
12375 }
12376
12377 /* End of Switch: '<S358>/Reset' */
12378
12379 /* UnitDelay: '<S360>/FixPt Unit Delay2' */
12380 L4_MABX_B.FixPtUnitDelay2_j = L4_MABX_DW.FixPtUnitDelay2_DSTATE_aw;
12381
12382 /* Logic: '<S360>/FixPt Logical Operator' */
12383 L4_MABX_B.FixPtLogicalOperator_i = (uint8_T)(L4_MABX_B.LogicalOperator1_ja ||
12384 (L4_MABX_B.FixPtUnitDelay2_j != 0));
12385
12386 /* UnitDelay: '<S360>/FixPt Unit Delay1' */
12387 L4_MABX_B.Xold_dp = L4_MABX_DW.FixPtUnitDelay1_DSTATE_p;
12388
12389 /* Switch: '<S360>/Init' incorporates:
12390 * Constant: '<S354>/CPV'
12391 */
12392 if (L4_MABX_B.FixPtLogicalOperator_i != 0) {
12393 L4_MABX_B.Init_oa = L4_MABX_P.CPV_Value_n;
12394 } else {
12395 L4_MABX_B.Init_oa = L4_MABX_B.Xold_dp;
12396 }
12397
12398 /* End of Switch: '<S360>/Init' */
12399
12400 /* UnitDelay: '<S361>/FixPt Unit Delay2' */
12401 L4_MABX_B.FixPtUnitDelay2_mz = L4_MABX_DW.FixPtUnitDelay2_DSTATE_g;
12402
12403 /* Logic: '<S361>/FixPt Logical Operator' */
12404 L4_MABX_B.FixPtLogicalOperator_b = (uint8_T)(L4_MABX_B.LogicalOperator1_ja ||
12405 (L4_MABX_B.FixPtUnitDelay2_mz != 0));
12406
12407 /* UnitDelay: '<S361>/FixPt Unit Delay1' */
12408 L4_MABX_B.Xold_mg = L4_MABX_DW.FixPtUnitDelay1_DSTATE_g;
12409
12410 /* Switch: '<S361>/Init' incorporates:
12411 * Constant: '<S352>/CPV2'
12412 */
12413 if (L4_MABX_B.FixPtLogicalOperator_b != 0) {
12414 L4_MABX_B.Init_l = L4_MABX_P.CPV2_Value_p;
12415 } else {
12416 L4_MABX_B.Init_l = L4_MABX_B.Xold_mg;
12417 }
12418
12419 /* End of Switch: '<S361>/Init' */
12420
12421 /* MultiPortSwitch: '<S359>/Multiport Switch' incorporates:
12422 * Constant: '<S352>/CPV2'
12423 * Constant: '<S359>/Integrator_method'
12424 */
12425 switch ((int32_T)L4_MABX_P.Integrator_method_Value) {
12426 case 1:
12427 L4_MABX_B.MultiportSwitch_i = L4_MABX_P.CPV2_Value_p;
12428 break;
12429
12430 case 2:
12431 L4_MABX_B.MultiportSwitch_i = L4_MABX_B.Init_l;
12432 break;
12433
12434 default:
12435 /* Sum: '<S359>/Add' incorporates:
12436 * Constant: '<S352>/CPV2'
12437 */
12438 L4_MABX_B.Add_py = L4_MABX_B.Init_l + L4_MABX_P.CPV2_Value_p;
12439
12440 /* Gain: '<S359>/Gain' */
12441 L4_MABX_B.u_trapezoidal = L4_MABX_P.Gain_Gain_j * L4_MABX_B.Add_py;
12442 L4_MABX_B.MultiportSwitch_i = L4_MABX_B.u_trapezoidal;
12443 break;
12444 }
12445
12446 /* End of MultiPortSwitch: '<S359>/Multiport Switch' */
12447
12448 /* DigitalClock: '<S355>/Digital Clock' */
12449 L4_MABX_B.DigitalClock_d = L4_MABX_M->Timing.t[0];
12450
12451 /* UnitDelay: '<S355>/Unit_Delay' */
12452 L4_MABX_B.Unit_Delay_p = L4_MABX_DW.Unit_Delay_DSTATE_j;
12453
12454 /* Sum: '<S355>/Subtract' */
12455 L4_MABX_B.Subtract_k = L4_MABX_B.DigitalClock_d - L4_MABX_B.Unit_Delay_p;
12456
12457 /* Product: '<S354>/Product1' incorporates:
12458 * Constant: '<S352>/CPV'
12459 */
12460 L4_MABX_B.Product1_am = L4_MABX_P.CPV_Value_g * L4_MABX_B.MultiportSwitch_i *
12461 L4_MABX_B.Subtract_k;
12462
12463 /* Sum: '<S354>/Add' */
12464 L4_MABX_B.Add_db = L4_MABX_B.Init_oa + L4_MABX_B.Product1_am;
12465
12466 /* Switch: '<S361>/Reset' incorporates:
12467 * Constant: '<S352>/CPV2'
12468 */
12469 L4_MABX_B.Xnew_f = L4_MABX_P.CPV2_Value_p;
12470
12471 /* Switch: '<S360>/Reset' incorporates:
12472 * Constant: '<S354>/CPV'
12473 */
12474 if (L4_MABX_B.LogicalOperator1_ja) {
12475 L4_MABX_B.Xnew_h = L4_MABX_P.CPV_Value_n;
12476 } else {
12477 L4_MABX_B.Xnew_h = L4_MABX_B.Add_db;
12478 }
12479
12480 /* End of Switch: '<S360>/Reset' */
12481
12482 /* RelationalOperator: '<S368>/min_relop' incorporates:
12483 * Constant: '<S332>/FCW_CTRL_SLEW_INC_APV'
12484 * Constant: '<S368>/min_val'
12485 */
12486 L4_MABX_B.min_relop_c = (L4_MABX_P.CheckStaticLowerBound_min_h <=
12487 L4_MABX_P.FCW_CTRL_SLEW_INC_APV_Value);
12488
12489 /* Assertion: '<S368>/Assertion' */
12490 utAssert(L4_MABX_B.min_relop_c);
12491
12492 /* RelationalOperator: '<S379>/min_relop' incorporates:
12493 * Constant: '<S334>/STABILITY_CTRL_SLEW_INC_APV'
12494 * Constant: '<S379>/min_val'
12495 */
12496 L4_MABX_B.min_relop_f = (L4_MABX_P.CheckStaticLowerBound_min_nz <=
12497 L4_MABX_P.STABILITY_CTRL_SLEW_INC_APV_Val);
12498
12499 /* Assertion: '<S379>/Assertion' */
12500 utAssert(L4_MABX_B.min_relop_f);
12501
12502 /* End of Outputs for SubSystem: '<S65>/Task_10ms' */
12503
12504 /* Outputs for Enabled SubSystem: '<S611>/PosRapidUpdate_011' incorporates:
12505 * EnablePort: '<S612>/Enable'
12506 */
12507 /* Constant: '<S434>/Constant' */
12508 if (L4_MABX_P.Constant_Value_pt > 0.0) {
12509 /* S-Function (rti_commonblock): '<S612>/S-Function1' */
12510 /* This comment workarounds a code generation problem */
12511
12512 /* dSPACE RTICAN RX Message Block: "PosRapidUpdate_01" Id:167248128 */
12513 {
12514 UInt32 *CAN_Msg;
12515 static dsfloat time_old = 0.0;
12516
12517 /* Read status and timestamp info (previous message) */
12518 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].timestamp !=
12519 time_old) {
12520 /* ... save timestamp info for the calculation of the RX status
12521 during the consecutive sample hit*/
12522 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].
12523 timestamp;
12524
12525 /* ... set the processed flag to one */
12526 L4_MABX_B.SFunction1_o3_bb = 1.0;
12527 L4_MABX_B.SFunction1_o4_d2 = (real_T)
12528 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].timestamp;
12529 L4_MABX_B.SFunction1_o5_j1 = (real_T)
12530 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].deltatime;
12531 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80100].data;
12532
12533 /* Decode CAN message */
12534 {
12535 {
12536 rtican_Signal_t CAN_Sgn;
12537
12538 /* ...... "Latitude_" (0|32, standard signal, signed int, little endian) */
12539 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12540 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
12541 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
12542 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
12543 L4_MABX_B.SFunction1_o1_jv = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
12544 );
12545
12546 /* ...... "Longitude_" (32|32, standard signal, signed int, little endian) */
12547 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12548 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
12549 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
12550 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
12551 L4_MABX_B.SFunction1_o2_go = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn)
12552 );
12553 }
12554 }
12555 } else {
12556 /* set RX status to 0 because no new message has arrived */
12557 L4_MABX_B.SFunction1_o3_bb = 0.0;
12558 }
12559 }
12560 }
12561
12562 /* End of Outputs for SubSystem: '<S611>/PosRapidUpdate_011' */
12563
12564 /* Outputs for Atomic SubSystem: '<S452>/If_Then_Else' */
12565
12566 /* Constant: '<S452>/useGPSSA00' incorporates:
12567 * Constant: '<S452>/useGPSSA0'
12568 */
12569 L4_MABX_If_Then_Else3(L4_MABX_B.LogicalOperator1_k, L4_MABX_P.useGPSSA00_Value,
12570 L4_MABX_P.useGPSSA0_Value, &L4_MABX_B.If_Then_Else);
12571
12572 /* End of Outputs for SubSystem: '<S452>/If_Then_Else' */
12573
12574 /* Outputs for Enabled SubSystem: '<S611>/PosRapidUpdate_1' incorporates:
12575 * EnablePort: '<S613>/Enable'
12576 */
12577 /* Constant: '<S434>/Constant' */
12578 if (L4_MABX_P.Constant_Value_pt > 0.0) {
12579 /* S-Function (rti_commonblock): '<S613>/S-Function1' */
12580 /* This comment workarounds a code generation problem */
12581
12582 /* dSPACE RTICAN RX Message Block: "PosRapidUpdate_01" Id:167248129 */
12583 {
12584 UInt32 *CAN_Msg;
12585 static dsfloat time_old = 0.0;
12586
12587 /* Read status and timestamp info (previous message) */
12588 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].timestamp !=
12589 time_old) {
12590 /* ... save timestamp info for the calculation of the RX status
12591 during the consecutive sample hit*/
12592 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].
12593 timestamp;
12594
12595 /* ... set the processed flag to one */
12596 L4_MABX_B.SFunction1_o3_cu = 1.0;
12597 L4_MABX_B.SFunction1_o4_k = (real_T)
12598 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].timestamp;
12599 L4_MABX_B.SFunction1_o5_j = (real_T)
12600 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].deltatime;
12601 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80101].data;
12602
12603 /* Decode CAN message */
12604 {
12605 {
12606 rtican_Signal_t CAN_Sgn;
12607
12608 /* ...... "Latitude_" (0|32, standard signal, signed int, little endian) */
12609 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12610 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
12611 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[2];
12612 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[3];
12613 L4_MABX_B.SFunction1_o1_p = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn) );
12614
12615 /* ...... "Longitude_" (32|32, standard signal, signed int, little endian) */
12616 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12617 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
12618 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
12619 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
12620 L4_MABX_B.SFunction1_o2_b = 1.0E-7 * ( ((real_T) CAN_Sgn.SignedSgn) );
12621 }
12622 }
12623 } else {
12624 /* set RX status to 0 because no new message has arrived */
12625 L4_MABX_B.SFunction1_o3_cu = 0.0;
12626 }
12627 }
12628 }
12629
12630 /* End of Outputs for SubSystem: '<S611>/PosRapidUpdate_1' */
12631
12632 /* Switch: '<S611>/Switch' */
12633 if (L4_MABX_B.If_Then_Else.Switch) {
12634 L4_MABX_B.Latitude_ = L4_MABX_B.SFunction1_o1_jv;
12635 L4_MABX_B.Longitude_ = L4_MABX_B.SFunction1_o2_go;
12636 } else {
12637 L4_MABX_B.Latitude_ = L4_MABX_B.SFunction1_o1_p;
12638 L4_MABX_B.Longitude_ = L4_MABX_B.SFunction1_o2_b;
12639 }
12640
12641 /* Outputs for Enabled SubSystem: '<S491>/CCVS1_00' incorporates:
12642 * EnablePort: '<S492>/Enable'
12643 */
12644 /* Constant: '<S415>/Constant' */
12645 if (L4_MABX_P.Constant_Value_j4z) {
12646 /* S-Function (rti_commonblock): '<S492>/S-Function1' */
12647 /* This comment workarounds a code generation problem */
12648
12649 /* dSPACE RTICAN RX Message Block: "CCVS1_00" Id:218034432 */
12650 {
12651 UInt32 *CAN_Msg;
12652 static dsfloat time_old = 0.0;
12653
12654 /* Read status and timestamp info (previous message) */
12655 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].timestamp !=
12656 time_old) {
12657 /* ... save timestamp info for the calculation of the RX status
12658 during the consecutive sample hit*/
12659 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].
12660 timestamp;
12661
12662 /* ... set the processed flag to one */
12663 L4_MABX_B.SFunction1_o21_n = 1.0;
12664 L4_MABX_B.SFunction1_o22_a = (real_T)
12665 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].timestamp;
12666 L4_MABX_B.SFunction1_o23_n = (real_T)
12667 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].deltatime;
12668 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCFEF100].data;
12669
12670 /* Decode CAN message */
12671 {
12672 {
12673 rtican_Signal_t CAN_Sgn;
12674
12675 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
12676 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12677 CAN_Sgn.UnsignedSgn &= 0x00000003;
12678 L4_MABX_B.SFunction1_o1_g3 = ((real_T) CAN_Sgn.UnsignedSgn);
12679
12680 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
12681 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12682 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
12683 CAN_Sgn.UnsignedSgn &= 0x00000003;
12684 L4_MABX_B.SFunction1_o2_l2 = ((real_T) CAN_Sgn.UnsignedSgn);
12685
12686 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
12687 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12688 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
12689 CAN_Sgn.UnsignedSgn &= 0x00000003;
12690 L4_MABX_B.SFunction1_o3_gw = ((real_T) CAN_Sgn.UnsignedSgn);
12691
12692 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
12693 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12694 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
12695 CAN_Sgn.UnsignedSgn &= 0x00000003;
12696 L4_MABX_B.SFunction1_o4_nw = ((real_T) CAN_Sgn.UnsignedSgn);
12697
12698 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
12699 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
12700 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
12701 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
12702 WheelBasedVehicleSpeed = 0.00390625 * ( ((real_T)
12703 CAN_Sgn.UnsignedSgn) );
12704
12705 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
12706 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12707 CAN_Sgn.UnsignedSgn &= 0x00000003;
12708 L4_MABX_B.SFunction1_o6_fi = ((real_T) CAN_Sgn.UnsignedSgn);
12709
12710 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
12711 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12712 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
12713 CAN_Sgn.UnsignedSgn &= 0x00000003;
12714 L4_MABX_B.SFunction1_o7_ng = ((real_T) CAN_Sgn.UnsignedSgn);
12715
12716 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
12717 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12718 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
12719 CAN_Sgn.UnsignedSgn &= 0x00000003;
12720 BrakeSwitch = ((real_T) CAN_Sgn.UnsignedSgn);
12721
12722 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
12723 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
12724 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
12725 CAN_Sgn.UnsignedSgn &= 0x00000003;
12726 L4_MABX_B.SFunction1_o9_f0 = ((real_T) CAN_Sgn.UnsignedSgn);
12727
12728 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
12729 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12730 CAN_Sgn.UnsignedSgn &= 0x00000003;
12731 L4_MABX_B.SFunction1_o10_em = ((real_T) CAN_Sgn.UnsignedSgn);
12732
12733 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
12734 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12735 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
12736 CAN_Sgn.UnsignedSgn &= 0x00000003;
12737 L4_MABX_B.SFunction1_o11_gw = ((real_T) CAN_Sgn.UnsignedSgn);
12738
12739 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
12740 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12741 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
12742 CAN_Sgn.UnsignedSgn &= 0x00000003;
12743 L4_MABX_B.SFunction1_o12_j = ((real_T) CAN_Sgn.UnsignedSgn);
12744
12745 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
12746 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12747 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
12748 CAN_Sgn.UnsignedSgn &= 0x00000003;
12749 L4_MABX_B.SFunction1_o13_o = ((real_T) CAN_Sgn.UnsignedSgn);
12750
12751 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
12752 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
12753 CAN_Sgn.UnsignedSgn &= 0x000000FF;
12754 L4_MABX_B.SFunction1_o14_nw = ((real_T) CAN_Sgn.UnsignedSgn);
12755
12756 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
12757 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
12758 CAN_Sgn.UnsignedSgn &= 0x0000001F;
12759 L4_MABX_B.SFunction1_o15_h = ((real_T) CAN_Sgn.UnsignedSgn);
12760
12761 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
12762 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
12763 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 5;
12764 CAN_Sgn.UnsignedSgn &= 0x00000007;
12765 L4_MABX_B.SFunction1_o16_g = ((real_T) CAN_Sgn.UnsignedSgn);
12766
12767 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
12768 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
12769 CAN_Sgn.UnsignedSgn &= 0x00000003;
12770 L4_MABX_B.SFunction1_o17_f = ((real_T) CAN_Sgn.UnsignedSgn);
12771
12772 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
12773 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
12774 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
12775 CAN_Sgn.UnsignedSgn &= 0x00000003;
12776 L4_MABX_B.SFunction1_o18_d = ((real_T) CAN_Sgn.UnsignedSgn);
12777
12778 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
12779 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
12780 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
12781 CAN_Sgn.UnsignedSgn &= 0x00000003;
12782 L4_MABX_B.SFunction1_o19_m = ((real_T) CAN_Sgn.UnsignedSgn);
12783
12784 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
12785 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
12786 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
12787 CAN_Sgn.UnsignedSgn &= 0x00000003;
12788 L4_MABX_B.SFunction1_o20_lk = ((real_T) CAN_Sgn.UnsignedSgn);
12789 }
12790 }
12791 } else {
12792 /* set RX status to 0 because no new message has arrived */
12793 L4_MABX_B.SFunction1_o21_n = 0.0;
12794 }
12795 }
12796 }
12797
12798 /* End of Constant: '<S415>/Constant' */
12799 /* End of Outputs for SubSystem: '<S491>/CCVS1_00' */
12800
12801 /* Outputs for Enabled SubSystem: '<S495>/COGSOGRapidUpdate_00' incorporates:
12802 * EnablePort: '<S496>/Enable'
12803 */
12804 /* Constant: '<S417>/Constant' */
12805 if (L4_MABX_P.Constant_Value_ec > 0.0) {
12806 /* S-Function (rti_commonblock): '<S496>/S-Function1' */
12807 /* This comment workarounds a code generation problem */
12808
12809 /* dSPACE RTICAN RX Message Block: "COGSOGRapidUpdate_00" Id:167248384 */
12810 {
12811 UInt32 *CAN_Msg;
12812 static dsfloat time_old = 0.0;
12813
12814 /* Read status and timestamp info (previous message) */
12815 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].timestamp !=
12816 time_old) {
12817 /* ... save timestamp info for the calculation of the RX status
12818 during the consecutive sample hit*/
12819 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].
12820 timestamp;
12821
12822 /* ... set the processed flag to one */
12823 L4_MABX_B.SFunction1_o5_lj = 1.0;
12824 L4_MABX_B.SFunction1_o6_fh = (real_T)
12825 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].timestamp;
12826 L4_MABX_B.SFunction1_o7_a = (real_T)
12827 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].deltatime;
12828 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80200].data;
12829
12830 /* Decode CAN message */
12831 {
12832 {
12833 rtican_Signal_t CAN_Sgn;
12834
12835 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
12836 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12837 CAN_Sgn.UnsignedSgn &= 0x000000FF;
12838 L4_MABX_B.SFunction1_o1_mp = ((real_T) CAN_Sgn.UnsignedSgn);
12839
12840 /* ...... "COGReference" (8|2, standard signal, unsigned int, little endian) */
12841 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
12842 CAN_Sgn.UnsignedSgn &= 0x00000003;
12843 L4_MABX_B.SFunction1_o2_ghu = ((real_T) CAN_Sgn.UnsignedSgn);
12844
12845 /* ...... "CourseOverGround" (16|16, standard signal, unsigned int, little endian) */
12846 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
12847 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
12848 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
12849 L4_MABX_B.SFunction1_o3_fl = 0.0001 * ( ((real_T)
12850 CAN_Sgn.UnsignedSgn) );
12851
12852 /* ...... "SpeedOverGround" (32|16, standard signal, unsigned int, little endian) */
12853 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12854 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
12855 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
12856 L4_MABX_B.SFunction1_o4_b = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
12857 }
12858 }
12859 } else {
12860 /* set RX status to 0 because no new message has arrived */
12861 L4_MABX_B.SFunction1_o5_lj = 0.0;
12862 }
12863 }
12864 }
12865
12866 /* End of Outputs for SubSystem: '<S495>/COGSOGRapidUpdate_00' */
12867
12868 /* DataTypeConversion: '<S495>/Data Type Conversion8' */
12869 L4_MABX_B.RX_status_g = (L4_MABX_B.SFunction1_o5_lj != 0.0);
12870
12871 /* Outputs for Enabled SubSystem: '<S495>/COGSOGRapidUpdate_1' incorporates:
12872 * EnablePort: '<S497>/Enable'
12873 */
12874 /* Constant: '<S417>/Constant' */
12875 if (L4_MABX_P.Constant_Value_ec > 0.0) {
12876 /* S-Function (rti_commonblock): '<S497>/S-Function1' */
12877 /* This comment workarounds a code generation problem */
12878
12879 /* dSPACE RTICAN RX Message Block: "COGSOGRapidUpdate_00" Id:167248385 */
12880 {
12881 UInt32 *CAN_Msg;
12882 static dsfloat time_old = 0.0;
12883
12884 /* Read status and timestamp info (previous message) */
12885 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].timestamp !=
12886 time_old) {
12887 /* ... save timestamp info for the calculation of the RX status
12888 during the consecutive sample hit*/
12889 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].
12890 timestamp;
12891
12892 /* ... set the processed flag to one */
12893 L4_MABX_B.SFunction1_o5_hd = 1.0;
12894 L4_MABX_B.SFunction1_o6_est = (real_T)
12895 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].timestamp;
12896 L4_MABX_B.SFunction1_o7_m = (real_T)
12897 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].deltatime;
12898 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x9F80201].data;
12899
12900 /* Decode CAN message */
12901 {
12902 {
12903 rtican_Signal_t CAN_Sgn;
12904
12905 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
12906 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
12907 CAN_Sgn.UnsignedSgn &= 0x000000FF;
12908 L4_MABX_B.SFunction1_o1_ko = ((real_T) CAN_Sgn.UnsignedSgn);
12909
12910 /* ...... "COGReference" (8|2, standard signal, unsigned int, little endian) */
12911 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
12912 CAN_Sgn.UnsignedSgn &= 0x00000003;
12913 L4_MABX_B.SFunction1_o2_c3 = ((real_T) CAN_Sgn.UnsignedSgn);
12914
12915 /* ...... "CourseOverGround" (16|16, standard signal, unsigned int, little endian) */
12916 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
12917 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
12918 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
12919 L4_MABX_B.SFunction1_o3_cq = 0.0001 * ( ((real_T)
12920 CAN_Sgn.UnsignedSgn) );
12921
12922 /* ...... "SpeedOverGround" (32|16, standard signal, unsigned int, little endian) */
12923 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
12924 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
12925 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
12926 L4_MABX_B.SFunction1_o4_fx = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
12927 );
12928 }
12929 }
12930 } else {
12931 /* set RX status to 0 because no new message has arrived */
12932 L4_MABX_B.SFunction1_o5_hd = 0.0;
12933 }
12934 }
12935 }
12936
12937 /* End of Outputs for SubSystem: '<S495>/COGSOGRapidUpdate_1' */
12938
12939 /* Switch: '<S495>/Switch' */
12940 if (L4_MABX_B.RX_status_g) {
12941 L4_MABX_B.SID = L4_MABX_B.SFunction1_o1_mp;
12942 L4_MABX_B.COGReference = L4_MABX_B.SFunction1_o2_ghu;
12943 L4_MABX_B.CourseOverGround = L4_MABX_B.SFunction1_o3_fl;
12944 L4_MABX_B.SpeedOverGround = L4_MABX_B.SFunction1_o4_b;
12945 } else {
12946 L4_MABX_B.SID = L4_MABX_B.SFunction1_o1_ko;
12947 L4_MABX_B.COGReference = L4_MABX_B.SFunction1_o2_c3;
12948 L4_MABX_B.CourseOverGround = L4_MABX_B.SFunction1_o3_cq;
12949 L4_MABX_B.SpeedOverGround = L4_MABX_B.SFunction1_o4_fx;
12950 }
12951
12952 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_100ms' */
12953
12954 /* RateTransition: '<S852>/TmpRTBAtHiddenBuf_InsertedFor_Rolling_15_counter_at_inport_0Inport1' */
12955 if (L4_MABX_M->Timing.RateInteraction.TID0_3 == 1) {
12956 L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_R = AutonomousOutputEnabled;
12957
12958 /* RateTransition: '<S870>/TmpRTBAtOperatorInport1' */
12959 L4_MABX_B.TmpRTBAtOperatorInport1 = AutonomousOutputEnabled;
12960
12961 /* RateTransition: '<S873>/TmpRTBAtOperatorInport1' */
12962 L4_MABX_B.TmpRTBAtOperatorInport1_d = AutonomousOutputEnabled;
12963
12964 /* RateTransition: '<S864>/TmpRTBAtOperatorInport1' */
12965 L4_MABX_B.TmpRTBAtOperatorInport1_l = AutonomousOutputEnabled;
12966
12967 /* RateTransition: '<S865>/TmpRTBAtOperatorInport1' */
12968 L4_MABX_B.TmpRTBAtOperatorInport1_a = AutonomousOutputEnabled;
12969
12970 /* RateTransition: '<S871>/TmpRTBAtOperatorInport1' */
12971 L4_MABX_B.TmpRTBAtOperatorInport1_g = AutonomousOutputEnabled;
12972
12973 /* RateTransition: '<S872>/TmpRTBAtOperatorInport1' */
12974 L4_MABX_B.TmpRTBAtOperatorInport1_o = AutonomousOutputEnabled;
12975 L4_MABX_B.Latitude__d = L4_MABX_B.Latitude_;
12976 L4_MABX_B.Longitude__g = L4_MABX_B.Longitude_;
12977 L4_MABX_B.TwoSpeedAxleSwitch_d = L4_MABX_B.SFunction1_o1_g3;
12978 L4_MABX_B.ParkingBrakeSwitch_b = L4_MABX_B.SFunction1_o2_l2;
12979 L4_MABX_B.CruiseCtrlPauseSwitch_d = L4_MABX_B.SFunction1_o3_gw;
12980 L4_MABX_B.ParkBrakeReleaseInhibitRq_b = L4_MABX_B.SFunction1_o4_nw;
12981 L4_MABX_B.WheelBasedVehicleSpeed_gh = WheelBasedVehicleSpeed;
12982 L4_MABX_B.CruiseCtrlActive_b = L4_MABX_B.SFunction1_o6_fi;
12983 L4_MABX_B.CruiseCtrlEnableSwitch_kn = L4_MABX_B.SFunction1_o7_ng;
12984 L4_MABX_B.BrakeSwitch_et = BrakeSwitch;
12985 L4_MABX_B.ClutchSwitch_b = L4_MABX_B.SFunction1_o9_f0;
12986 L4_MABX_B.CruiseCtrlSetSwitch_b = L4_MABX_B.SFunction1_o10_em;
12987 L4_MABX_B.CruiseCtrlCoastSwitch_j = L4_MABX_B.SFunction1_o11_gw;
12988 L4_MABX_B.CruiseCtrlResumeSwitch_j = L4_MABX_B.SFunction1_o12_j;
12989 L4_MABX_B.CruiseCtrlAccelerateSwitch_j = L4_MABX_B.SFunction1_o13_o;
12990 L4_MABX_B.CruiseCtrlSetSpeed_m = L4_MABX_B.SFunction1_o14_nw;
12991 L4_MABX_B.PTOGovernorState_g = L4_MABX_B.SFunction1_o15_h;
12992 L4_MABX_B.CruiseCtrlStates_n = L4_MABX_B.SFunction1_o16_g;
12993 L4_MABX_B.EngIdleIncrementSwitch_j = L4_MABX_B.SFunction1_o17_f;
12994 L4_MABX_B.EngIdleDecrementSwitch_l = L4_MABX_B.SFunction1_o18_d;
12995 L4_MABX_B.EngTestModeSwitch_d = L4_MABX_B.SFunction1_o19_m;
12996 L4_MABX_B.EngShutdownOverrideSwitch_g = L4_MABX_B.SFunction1_o20_lk;
12997 L4_MABX_B.TwoSpeedAxleSwitch_dg = L4_MABX_B.SFunction1_o1_g3;
12998 L4_MABX_B.ParkingBrakeSwitch_br = L4_MABX_B.SFunction1_o2_l2;
12999 L4_MABX_B.CruiseCtrlPauseSwitch_dm = L4_MABX_B.SFunction1_o3_gw;
13000 L4_MABX_B.ParkBrakeReleaseInhibitRq_b1 = L4_MABX_B.SFunction1_o4_nw;
13001 L4_MABX_B.WheelBasedVehicleSpeed_gh3 = WheelBasedVehicleSpeed;
13002 L4_MABX_B.CruiseCtrlActive_bl = L4_MABX_B.SFunction1_o6_fi;
13003 L4_MABX_B.CruiseCtrlEnableSwitch_kn0 = L4_MABX_B.SFunction1_o7_ng;
13004 L4_MABX_B.BrakeSwitch_ets = BrakeSwitch;
13005 L4_MABX_B.ClutchSwitch_bo = L4_MABX_B.SFunction1_o9_f0;
13006 L4_MABX_B.CruiseCtrlSetSwitch_bj = L4_MABX_B.SFunction1_o10_em;
13007 L4_MABX_B.CruiseCtrlCoastSwitch_jy = L4_MABX_B.SFunction1_o11_gw;
13008 L4_MABX_B.CruiseCtrlResumeSwitch_jd = L4_MABX_B.SFunction1_o12_j;
13009 L4_MABX_B.CruiseCtrlAccelerateSwitch_jp = L4_MABX_B.SFunction1_o13_o;
13010 L4_MABX_B.CruiseCtrlSetSpeed_mb = L4_MABX_B.SFunction1_o14_nw;
13011 L4_MABX_B.PTOGovernorState_gp = L4_MABX_B.SFunction1_o15_h;
13012 L4_MABX_B.CruiseCtrlStates_nb = L4_MABX_B.SFunction1_o16_g;
13013 L4_MABX_B.EngIdleIncrementSwitch_jl = L4_MABX_B.SFunction1_o17_f;
13014 L4_MABX_B.EngIdleDecrementSwitch_l4 = L4_MABX_B.SFunction1_o18_d;
13015 L4_MABX_B.EngTestModeSwitch_dg = L4_MABX_B.SFunction1_o19_m;
13016 L4_MABX_B.EngShutdownOverrideSwitch_g5 = L4_MABX_B.SFunction1_o20_lk;
13017 L4_MABX_B.SID_f = L4_MABX_B.SID;
13018 L4_MABX_B.COGReference_e = L4_MABX_B.COGReference;
13019 L4_MABX_B.CourseOverGround_a = L4_MABX_B.CourseOverGround;
13020 L4_MABX_B.SpeedOverGround_c = L4_MABX_B.SpeedOverGround;
13021 L4_MABX_B.ASREngCtrlActive = L4_MABX_B.SFunction1_o1_br;
13022 L4_MABX_B.ASRBrakeCtrlActive = L4_MABX_B.SFunction1_o2_ow;
13023 L4_MABX_B.AntiLockBrakingActive = L4_MABX_B.SFunction1_o3_nk;
13024 L4_MABX_B.EBSBrakeSwitch_c = L4_MABX_B.SFunction1_o4_o;
13025 L4_MABX_B.BrakePedalPos = L4_MABX_B.SFunction1_o5_jlz;
13026 L4_MABX_B.ABSOffroadSwitch = L4_MABX_B.SFunction1_o6_ch;
13027 L4_MABX_B.ASROffroadSwitch = L4_MABX_B.SFunction1_o7_h;
13028 L4_MABX_B.ASRHillHolderSwitch = L4_MABX_B.SFunction1_o8_b;
13029 L4_MABX_B.TractionCtrlOverrideSwitch = L4_MABX_B.SFunction1_o9_n5;
13030 L4_MABX_B.AccelInterlockSwitch = L4_MABX_B.SFunction1_o10_ai;
13031 L4_MABX_B.EngDerateSwitch = L4_MABX_B.SFunction1_o11_o;
13032 L4_MABX_B.EngAuxShutdownSwitch = L4_MABX_B.SFunction1_o12_c;
13033 L4_MABX_B.RemoteAccelEnableSwitch = L4_MABX_B.SFunction1_o13_b;
13034 L4_MABX_B.EngRetarderSelection = L4_MABX_B.SFunction1_o14_n;
13035 L4_MABX_B.ABSFullyOperational = L4_MABX_B.SFunction1_o15_i;
13036 L4_MABX_B.EBSRedWarningSignal = L4_MABX_B.SFunction1_o16_c;
13037 L4_MABX_B.ABS_EBSAmberWarningSignal = L4_MABX_B.SFunction1_o17_mb;
13038 L4_MABX_B.ATC_ASRInformationSignal = L4_MABX_B.SFunction1_o18_g;
13039 L4_MABX_B.SrcAddrssOfCtrllngDvcFrBrkCntrl = L4_MABX_B.SFunction1_o19_o;
13040 L4_MABX_B.HaltBrakeSwitch = L4_MABX_B.SFunction1_o20_b;
13041 L4_MABX_B.TrailerABSStatus = L4_MABX_B.SFunction1_o21_i;
13042 L4_MABX_B.TrctrMntdTrilerABSWarningSignal = L4_MABX_B.SFunction1_o22_c;
13043 }
13044
13045 /* End of Outputs for SubSystem: '<S815>/CAN_TX_100ms' */
13046
13047 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_10ms' */
13048
13049 /* DataTypeConversion: '<S917>/Data Type Conversion4' */
13050 L4_MABX_B.DataTypeConversion4_n = L4_MABX_B.Diff;
13051
13052 /* DataTypeConversion: '<S906>/Data Type Conversion' incorporates:
13053 * Constant: '<S820>/CANT_ACCS_E4_CHANNEL_APV'
13054 */
13055 L4_MABX_B.DataTypeConversion_ab = (uint8_T)
13056 L4_MABX_P.CANT_ACCS_E4_CHANNEL_APV_Value;
13057
13058 /* S-Function (sfix_bitop): '<S914>/Operator' */
13059 L4_MABX_B.Operator_ai = (uint8_T)(L4_MABX_B.DataTypeConversion_ab &
13060 L4_MABX_P.Operator_BitMask_p4);
13061
13062 /* DataTypeConversion: '<S914>/DataType' */
13063 L4_MABX_B.DataType_m = L4_MABX_B.Operator_ai;
13064
13065 /* ArithShift: '<S906>/Shift_Arithmetic 2' */
13066 L4_MABX_B.Shift_Arithmetic2_k = ldexp(L4_MABX_B.DataType_m, (-3));
13067
13068 /* DataTypeConversion: '<S906>/Data Type Conversion5' */
13069 L4_MABX_B.DataTypeConversion5_gb = (L4_MABX_B.Shift_Arithmetic2_k != 0.0);
13070
13071 /* Outputs for Enabled SubSystem: '<S917>/ACCS' incorporates:
13072 * EnablePort: '<S918>/Enable'
13073 */
13074 if (L4_MABX_B.DataTypeConversion5_gb) {
13075 /* S-Function (rti_commonblock): '<S918>/S-Function1' */
13076 /* This comment workarounds a code generation problem */
13077
13078 /* dSPACE RTICAN TX Message Block: "ACCS" Id:418393572 */
13079 {
13080 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
13081
13082 Float32 delayTime = 0.0;
13083
13084 /* ... Read status and timestamp info (previous message) */
13085 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]);
13086
13087 /* Convert timestamp */
13088 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->processed) {
13089 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp =
13090 rtk_dsts_time_to_simtime_convert
13091 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp);
13092 }
13093
13094 /* Messages with timestamp zero have been received in pause/stop state
13095 and must not be handled.
13096 */
13097 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp > 0.0) {
13098 L4_MABX_B.SFunction1_o1_fo = (real_T)
13099 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->processed;
13100 L4_MABX_B.SFunction1_o2_dw = (real_T)
13101 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->timestamp;
13102 L4_MABX_B.SFunction1_o3_o5 = (real_T)
13103 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->deltatime;
13104 L4_MABX_B.SFunction1_o4_n = (real_T)
13105 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4]->delaytime;
13106 }
13107
13108 /* ... Encode Simulink signals of TX and RM blocks*/
13109 {
13110 rtican_Signal_t CAN_Sgn;
13111
13112 /* ...... "LongitudinalAccelerationExRange" (16|16, standard signal, unsigned int, little endian) */
13113 /* Add or substract 0.5 in order to round to nearest integer */
13114 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_n -
13115 ( -320 ) ) / 0.01 + 0.5);
13116 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13117 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
13118 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
13119 }
13120
13121 /* mask unused bits with '1' */
13122 CAN_Msg[0] |= 0xFF;
13123 CAN_Msg[1] |= 0xFF;
13124 CAN_Msg[4] |= 0xFF;
13125 CAN_Msg[5] |= 0xFF;
13126 CAN_Msg[6] |= 0xFF;
13127 CAN_Msg[7] |= 0xFF;
13128
13129 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
13130 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4], 8,
13131 &(CAN_Msg[0]), delayTime);
13132 }
13133 }
13134
13135 /* End of Outputs for SubSystem: '<S917>/ACCS' */
13136
13137 /* S-Function (sfix_bitop): '<S911>/Operator' */
13138 L4_MABX_B.Operator_ol = (uint8_T)(L4_MABX_B.DataTypeConversion_ab &
13139 L4_MABX_P.Operator_BitMask_k5);
13140
13141 /* DataTypeConversion: '<S911>/DataType' */
13142 L4_MABX_B.DataType_pe = L4_MABX_B.Operator_ol;
13143
13144 /* S-Function (sfix_bitop): '<S912>/Operator' */
13145 L4_MABX_B.Operator_jo = (uint8_T)(L4_MABX_B.DataTypeConversion_ab &
13146 L4_MABX_P.Operator_BitMask_a3);
13147
13148 /* DataTypeConversion: '<S912>/DataType' */
13149 L4_MABX_B.DataType_c = L4_MABX_B.Operator_jo;
13150
13151 /* S-Function (sfix_bitop): '<S913>/Operator' */
13152 L4_MABX_B.Operator_i1 = (uint8_T)(L4_MABX_B.DataTypeConversion_ab &
13153 L4_MABX_P.Operator_BitMask_n5);
13154
13155 /* DataTypeConversion: '<S913>/DataType' */
13156 L4_MABX_B.DataType_p = L4_MABX_B.Operator_i1;
13157
13158 /* S-Function (sfix_bitop): '<S915>/Operator' */
13159 L4_MABX_B.Operator_dr = (uint8_T)(L4_MABX_B.DataTypeConversion_ab &
13160 L4_MABX_P.Operator_BitMask_l);
13161
13162 /* DataTypeConversion: '<S915>/DataType' */
13163 L4_MABX_B.DataType_f = L4_MABX_B.Operator_dr;
13164
13165 /* S-Function (sfix_bitop): '<S916>/Operator' */
13166 L4_MABX_B.Operator_hz = (uint8_T)(L4_MABX_B.DataTypeConversion_ab &
13167 L4_MABX_P.Operator_BitMask_kw);
13168
13169 /* DataTypeConversion: '<S916>/DataType' */
13170 L4_MABX_B.DataType_mj = L4_MABX_B.Operator_hz;
13171
13172 /* DataTypeConversion: '<S906>/Data Type Conversion2' */
13173 L4_MABX_B.DataTypeConversion2_au = (L4_MABX_B.DataType_pe != 0);
13174
13175 /* ArithShift: '<S906>/Shift_Arithmetic ' */
13176 L4_MABX_B.Shift_Arithmetic_c = ldexp(L4_MABX_B.DataType_c, (-1));
13177
13178 /* DataTypeConversion: '<S906>/Data Type Conversion3' */
13179 L4_MABX_B.DataTypeConversion3_lm = (L4_MABX_B.Shift_Arithmetic_c != 0.0);
13180
13181 /* ArithShift: '<S906>/Shift_Arithmetic 1' */
13182 L4_MABX_B.Shift_Arithmetic1_d = ldexp(L4_MABX_B.DataType_p, (-2));
13183
13184 /* DataTypeConversion: '<S906>/Data Type Conversion4' */
13185 L4_MABX_B.DataTypeConversion4_bv = (L4_MABX_B.Shift_Arithmetic1_d != 0.0);
13186
13187 /* ArithShift: '<S906>/Shift_Arithmetic 3' */
13188 L4_MABX_B.Shift_Arithmetic3_b = ldexp(L4_MABX_B.DataType_f, (-4));
13189
13190 /* DataTypeConversion: '<S906>/Data Type Conversion6' */
13191 L4_MABX_B.DataTypeConversion6_bk = (L4_MABX_B.Shift_Arithmetic3_b != 0.0);
13192
13193 /* ArithShift: '<S906>/Shift_Arithmetic 4' */
13194 L4_MABX_B.Shift_Arithmetic4_l = ldexp(L4_MABX_B.DataType_mj, (-5));
13195
13196 /* DataTypeConversion: '<S906>/Data Type Conversion7' */
13197 L4_MABX_B.DataTypeConversion7_e = (L4_MABX_B.Shift_Arithmetic4_l != 0.0);
13198
13199 /* DataTypeConversion: '<S925>/Data Type Conversion1' */
13200 L4_MABX_B.DataTypeConversion1_c = L4_MABX_B.SFunction1_o2_b0;
13201
13202 /* DataTypeConversion: '<S925>/Data Type Conversion2' */
13203 L4_MABX_B.DataTypeConversion2_pa = L4_MABX_B.SFunction1_o3_an;
13204
13205 /* DataTypeConversion: '<S925>/Data Type Conversion3' */
13206 L4_MABX_B.DataTypeConversion3_e = L4_MABX_B.SFunction1_o4_k2;
13207
13208 /* DataTypeConversion: '<S925>/Data Type Conversion4' */
13209 L4_MABX_B.DataTypeConversion4_o = L4_MABX_B.SFunction1_o1_gr;
13210
13211 /* DataTypeConversion: '<S925>/Data Type Conversion5' */
13212 L4_MABX_B.DataTypeConversion5_a = L4_MABX_B.SFunction1_o5_f1;
13213
13214 /* DataTypeConversion: '<S925>/Data Type Conversion6' */
13215 L4_MABX_B.DataTypeConversion6_f = L4_MABX_B.SFunction1_o6_kx;
13216
13217 /* DataTypeConversion: '<S925>/Data Type Conversion7' */
13218 L4_MABX_B.DataTypeConversion7_f = L4_MABX_B.SFunction1_o7_f;
13219
13220 /* DataTypeConversion: '<S925>/Data Type Conversion8' */
13221 L4_MABX_B.DataTypeConversion8_o = L4_MABX_B.SFunction1_o8_e;
13222
13223 /* DataTypeConversion: '<S907>/Data Type Conversion' incorporates:
13224 * Constant: '<S820>/CANT_EEC1_00_CHANNEL_APV'
13225 */
13226 L4_MABX_B.DataTypeConversion_gx = (uint8_T)
13227 L4_MABX_P.CANT_EEC1_00_CHANNEL_APV_Value;
13228
13229 /* S-Function (sfix_bitop): '<S922>/Operator' */
13230 L4_MABX_B.Operator_cs = (uint8_T)(L4_MABX_B.DataTypeConversion_gx &
13231 L4_MABX_P.Operator_BitMask_jz);
13232
13233 /* DataTypeConversion: '<S922>/DataType' */
13234 L4_MABX_B.DataType_co = L4_MABX_B.Operator_cs;
13235
13236 /* ArithShift: '<S907>/Shift_Arithmetic 2' */
13237 L4_MABX_B.Shift_Arithmetic2_o = ldexp(L4_MABX_B.DataType_co, (-3));
13238
13239 /* DataTypeConversion: '<S907>/Data Type Conversion5' */
13240 L4_MABX_B.DataTypeConversion5_ns = (L4_MABX_B.Shift_Arithmetic2_o != 0.0);
13241
13242 /* Outputs for Enabled SubSystem: '<S925>/EEC1_00' incorporates:
13243 * EnablePort: '<S927>/Enable'
13244 */
13245 if (L4_MABX_B.DataTypeConversion5_ns) {
13246 /* S-Function (rti_commonblock): '<S927>/S-Function1' */
13247 /* This comment workarounds a code generation problem */
13248
13249 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
13250 {
13251 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
13252
13253 Float32 delayTime = 0.0;
13254
13255 /* ... Read status and timestamp info (previous message) */
13256 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]);
13257
13258 /* Convert timestamp */
13259 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->processed) {
13260 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp =
13261 rtk_dsts_time_to_simtime_convert
13262 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp);
13263 }
13264
13265 /* Messages with timestamp zero have been received in pause/stop state
13266 and must not be handled.
13267 */
13268 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp > 0.0) {
13269 L4_MABX_B.SFunction1_o1_jg = (real_T)
13270 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->processed;
13271 L4_MABX_B.SFunction1_o2_gv = (real_T)
13272 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->timestamp;
13273 L4_MABX_B.SFunction1_o3_a = (real_T)
13274 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->deltatime;
13275 L4_MABX_B.SFunction1_o4_eo = (real_T)
13276 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400]->delaytime;
13277 }
13278
13279 /* ... Encode Simulink signals of TX and RM blocks*/
13280 {
13281 rtican_Signal_t CAN_Sgn;
13282
13283 /* ...... "SPN899_EngineTorqueMode" (0|4, standard signal, unsigned int, little endian) */
13284 /* Add or substract 0.5 in order to round to nearest integer */
13285 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_o ) +
13286 0.5);
13287 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13288 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13289
13290 /* ...... "SPN4154_ActEngPercTorqueFrac" (4|4, standard signal, unsigned int, little endian) */
13291 /* Add or substract 0.5 in order to round to nearest integer */
13292 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_c - ( 0 )
13293 ) / 0.125 + 0.5);
13294 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13295 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
13296 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13297
13298 /* ...... "SPN512_DrvrDemEngPercTrq" (8|8, standard signal, unsigned int, little endian) */
13299 /* Add or substract 0.5 in order to round to nearest integer */
13300 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion2_pa -
13301 ( -125 ) + 0.5);
13302 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13303 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
13304
13305 /* ...... "SPN513_ActEngPercTorque" (16|8, standard signal, unsigned int, little endian) */
13306 /* Add or substract 0.5 in order to round to nearest integer */
13307 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion3_e - ( -125
13308 ) + 0.5);
13309 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13310 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
13311
13312 /* ...... "SPN190_EngineSpeed" (24|16, standard signal, unsigned int, little endian) */
13313 /* Add or substract 0.5 in order to round to nearest integer */
13314 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion5_a - ( 0 )
13315 ) / 0.125 + 0.5);
13316 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13317 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
13318 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
13319
13320 /* ...... "SPN1483_SAOfCtrlDevForEngineCtrl" (40|8, standard signal, unsigned int, little endian) */
13321 /* Add or substract 0.5 in order to round to nearest integer */
13322 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion6_f ) +
13323 0.5);
13324 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13325 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
13326
13327 /* ...... "SPN1675_EngineStarterMode" (48|4, standard signal, unsigned int, little endian) */
13328 /* Add or substract 0.5 in order to round to nearest integer */
13329 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion7_f ) +
13330 0.5);
13331 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13332 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
13333
13334 /* ...... "SPN2432_EngDemPercTrq" (56|8, standard signal, unsigned int, little endian) */
13335 /* Add or substract 0.5 in order to round to nearest integer */
13336 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion8_o - ( -125
13337 ) + 0.5);
13338 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13339 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
13340 }
13341
13342 /* mask unused bits with '1' */
13343 CAN_Msg[6] |= 0xF0;
13344
13345 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
13346 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400], 8,
13347 &(CAN_Msg[0]), delayTime);
13348 }
13349 }
13350
13351 /* End of Outputs for SubSystem: '<S925>/EEC1_00' */
13352
13353 /* DataTypeConversion: '<S926>/Data Type Conversion1' */
13354 L4_MABX_B.DataTypeConversion1_fu = L4_MABX_B.SFunction1_o2_b0;
13355
13356 /* DataTypeConversion: '<S926>/Data Type Conversion2' */
13357 L4_MABX_B.DataTypeConversion2_jt = L4_MABX_B.SFunction1_o3_an;
13358
13359 /* DataTypeConversion: '<S926>/Data Type Conversion3' */
13360 L4_MABX_B.DataTypeConversion3_g = L4_MABX_B.SFunction1_o4_k2;
13361
13362 /* DataTypeConversion: '<S926>/Data Type Conversion4' */
13363 L4_MABX_B.DataTypeConversion4_i = L4_MABX_B.SFunction1_o1_gr;
13364
13365 /* DataTypeConversion: '<S926>/Data Type Conversion5' */
13366 L4_MABX_B.DataTypeConversion5_p = L4_MABX_B.SFunction1_o5_f1;
13367
13368 /* DataTypeConversion: '<S926>/Data Type Conversion6' */
13369 L4_MABX_B.DataTypeConversion6_o = L4_MABX_B.SFunction1_o6_kx;
13370
13371 /* DataTypeConversion: '<S926>/Data Type Conversion7' */
13372 L4_MABX_B.DataTypeConversion7_gu = L4_MABX_B.SFunction1_o7_f;
13373
13374 /* DataTypeConversion: '<S926>/Data Type Conversion8' */
13375 L4_MABX_B.DataTypeConversion8_n = L4_MABX_B.SFunction1_o8_e;
13376
13377 /* S-Function (sfix_bitop): '<S923>/Operator' */
13378 L4_MABX_B.Operator_bs = (uint8_T)(L4_MABX_B.DataTypeConversion_gx &
13379 L4_MABX_P.Operator_BitMask_lp);
13380
13381 /* DataTypeConversion: '<S923>/DataType' */
13382 L4_MABX_B.DataType_e = L4_MABX_B.Operator_bs;
13383
13384 /* ArithShift: '<S907>/Shift_Arithmetic 3' */
13385 L4_MABX_B.Shift_Arithmetic3_c = ldexp(L4_MABX_B.DataType_e, (-4));
13386
13387 /* DataTypeConversion: '<S907>/Data Type Conversion6' */
13388 L4_MABX_B.DataTypeConversion6_k = (L4_MABX_B.Shift_Arithmetic3_c != 0.0);
13389
13390 /* Outputs for Enabled SubSystem: '<S926>/EEC1_00' incorporates:
13391 * EnablePort: '<S928>/Enable'
13392 */
13393 if (L4_MABX_B.DataTypeConversion6_k) {
13394 /* S-Function (rti_commonblock): '<S928>/S-Function1' */
13395 /* This comment workarounds a code generation problem */
13396
13397 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
13398 {
13399 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
13400
13401 Float32 delayTime = 0.0;
13402
13403 /* ... Read status and timestamp info (previous message) */
13404 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]);
13405
13406 /* Convert timestamp */
13407 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->processed) {
13408 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp =
13409 rtk_dsts_time_to_simtime_convert
13410 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp);
13411 }
13412
13413 /* Messages with timestamp zero have been received in pause/stop state
13414 and must not be handled.
13415 */
13416 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp > 0.0) {
13417 L4_MABX_B.SFunction1_o1_j = (real_T)
13418 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->processed;
13419 L4_MABX_B.SFunction1_o2_op = (real_T)
13420 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->timestamp;
13421 L4_MABX_B.SFunction1_o3_c2 = (real_T)
13422 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->deltatime;
13423 L4_MABX_B.SFunction1_o4_db = (real_T)
13424 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400]->delaytime;
13425 }
13426
13427 /* ... Encode Simulink signals of TX and RM blocks*/
13428 {
13429 rtican_Signal_t CAN_Sgn;
13430
13431 /* ...... "SPN899_EngineTorqueMode" (0|4, standard signal, unsigned int, little endian) */
13432 /* Add or substract 0.5 in order to round to nearest integer */
13433 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_i ) +
13434 0.5);
13435 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13436 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13437
13438 /* ...... "SPN4154_ActEngPercTorqueFrac" (4|4, standard signal, unsigned int, little endian) */
13439 /* Add or substract 0.5 in order to round to nearest integer */
13440 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_fu - ( 0
13441 ) ) / 0.125 + 0.5);
13442 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13443 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
13444 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
13445
13446 /* ...... "SPN512_DrvrDemEngPercTrq" (8|8, standard signal, unsigned int, little endian) */
13447 /* Add or substract 0.5 in order to round to nearest integer */
13448 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion2_jt -
13449 ( -125 ) + 0.5);
13450 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13451 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
13452
13453 /* ...... "SPN513_ActEngPercTorque" (16|8, standard signal, unsigned int, little endian) */
13454 /* Add or substract 0.5 in order to round to nearest integer */
13455 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion3_g - ( -125
13456 ) + 0.5);
13457 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13458 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
13459
13460 /* ...... "SPN190_EngineSpeed" (24|16, standard signal, unsigned int, little endian) */
13461 /* Add or substract 0.5 in order to round to nearest integer */
13462 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion5_p - ( 0 )
13463 ) / 0.125 + 0.5);
13464 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
13465 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
13466 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
13467
13468 /* ...... "SPN1483_SAOfCtrlDevForEngineCtrl" (40|8, standard signal, unsigned int, little endian) */
13469 /* Add or substract 0.5 in order to round to nearest integer */
13470 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion6_o ) +
13471 0.5);
13472 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13473 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
13474
13475 /* ...... "SPN1675_EngineStarterMode" (48|4, standard signal, unsigned int, little endian) */
13476 /* Add or substract 0.5 in order to round to nearest integer */
13477 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion7_gu ) +
13478 0.5);
13479 CAN_Sgn.UnsignedSgn &= 0x0000000F;
13480 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
13481
13482 /* ...... "SPN2432_EngDemPercTrq" (56|8, standard signal, unsigned int, little endian) */
13483 /* Add or substract 0.5 in order to round to nearest integer */
13484 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.DataTypeConversion8_n - ( -125
13485 ) + 0.5);
13486 CAN_Sgn.UnsignedSgn &= 0x000000FF;
13487 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
13488 }
13489
13490 /* mask unused bits with '1' */
13491 CAN_Msg[6] |= 0xF0;
13492
13493 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
13494 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400], 8,
13495 &(CAN_Msg[0]), delayTime);
13496 }
13497 }
13498
13499 /* End of Outputs for SubSystem: '<S926>/EEC1_00' */
13500
13501 /* S-Function (sfix_bitop): '<S919>/Operator' */
13502 L4_MABX_B.Operator_dk = (uint8_T)(L4_MABX_B.DataTypeConversion_gx &
13503 L4_MABX_P.Operator_BitMask_oy);
13504
13505 /* DataTypeConversion: '<S919>/DataType' */
13506 L4_MABX_B.DataType_fx = L4_MABX_B.Operator_dk;
13507
13508 /* S-Function (sfix_bitop): '<S920>/Operator' */
13509 L4_MABX_B.Operator_dl = (uint8_T)(L4_MABX_B.DataTypeConversion_gx &
13510 L4_MABX_P.Operator_BitMask_fa);
13511
13512 /* DataTypeConversion: '<S920>/DataType' */
13513 L4_MABX_B.DataType_ba = L4_MABX_B.Operator_dl;
13514
13515 /* S-Function (sfix_bitop): '<S921>/Operator' */
13516 L4_MABX_B.Operator_ib = (uint8_T)(L4_MABX_B.DataTypeConversion_gx &
13517 L4_MABX_P.Operator_BitMask_ob);
13518
13519 /* DataTypeConversion: '<S921>/DataType' */
13520 L4_MABX_B.DataType_d = L4_MABX_B.Operator_ib;
13521
13522 /* S-Function (sfix_bitop): '<S924>/Operator' */
13523 L4_MABX_B.Operator_cp = (uint8_T)(L4_MABX_B.DataTypeConversion_gx &
13524 L4_MABX_P.Operator_BitMask_ck);
13525
13526 /* DataTypeConversion: '<S924>/DataType' */
13527 L4_MABX_B.DataType_d4 = L4_MABX_B.Operator_cp;
13528
13529 /* DataTypeConversion: '<S907>/Data Type Conversion2' */
13530 L4_MABX_B.DataTypeConversion2_ls = (L4_MABX_B.DataType_fx != 0);
13531
13532 /* ArithShift: '<S907>/Shift_Arithmetic ' */
13533 L4_MABX_B.Shift_Arithmetic_g = ldexp(L4_MABX_B.DataType_ba, (-1));
13534
13535 /* DataTypeConversion: '<S907>/Data Type Conversion3' */
13536 L4_MABX_B.DataTypeConversion3_hc = (L4_MABX_B.Shift_Arithmetic_g != 0.0);
13537
13538 /* ArithShift: '<S907>/Shift_Arithmetic 1' */
13539 L4_MABX_B.Shift_Arithmetic1_p = ldexp(L4_MABX_B.DataType_d, (-2));
13540
13541 /* DataTypeConversion: '<S907>/Data Type Conversion4' */
13542 L4_MABX_B.DataTypeConversion4_gx = (L4_MABX_B.Shift_Arithmetic1_p != 0.0);
13543
13544 /* ArithShift: '<S907>/Shift_Arithmetic 4' */
13545 L4_MABX_B.Shift_Arithmetic4_o = ldexp(L4_MABX_B.DataType_d4, (-5));
13546
13547 /* DataTypeConversion: '<S907>/Data Type Conversion7' */
13548 L4_MABX_B.DataTypeConversion7_p3 = (L4_MABX_B.Shift_Arithmetic4_o != 0.0);
13549
13550 /* DataTypeConversion: '<S910>/Data Type Conversion' */
13551 L4_MABX_B.DataTypeConversion_fp = AutonomousOutputEnabled;
13552
13553 /* Switch: '<S944>/Switch' incorporates:
13554 * Constant: '<S944>/Constant'
13555 * Constant: '<S944>/Constant1'
13556 */
13557 if (L4_MABX_B.DataTypeConversion_fp != 0) {
13558 L4_MABX_B.Switch_e = L4_MABX_P.Constant_Value_hz;
13559 } else {
13560 L4_MABX_B.Switch_e = L4_MABX_P.Constant1_Value_nt;
13561 }
13562
13563 /* End of Switch: '<S944>/Switch' */
13564
13565 /* DataTypeConversion: '<S942>/Data Type Conversion' */
13566 L4_MABX_B.DataTypeConversion_f1 = L4_MABX_B.Switch_e;
13567
13568 /* RelationalOperator: '<S961>/Operator' incorporates:
13569 * Constant: '<S943>/Constant'
13570 * Constant: '<S943>/Constant6'
13571 */
13572 L4_MABX_B.Operator_e5y = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13573 L4_MABX_P.Constant_Value_au);
13574
13575 /* Outputs for Enabled SubSystem: '<S943>/DEFAULT_TRQ_CTRL_MODE' */
13576 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_e5y, &L4_MABX_B.Merge,
13577 &L4_MABX_P.DEFAULT_TRQ_CTRL_MODE);
13578
13579 /* End of Outputs for SubSystem: '<S943>/DEFAULT_TRQ_CTRL_MODE' */
13580
13581 /* Switch: '<S960>/Switch' incorporates:
13582 * Constant: '<S960>/zero'
13583 */
13584 if (L4_MABX_B.DataTypeConversion_fp != 0) {
13585 /* MultiPortSwitch: '<S960>/Multiport_Switch' incorporates:
13586 * Constant: '<S960>/Constant1'
13587 * Constant: '<S960>/Constant7'
13588 */
13589 switch (PROPB_REAX_1_E4_DES_POS_SIG_SRC_APV) {
13590 case ENUM_STEERING_POS_SIGNAL_SOURCE_T_SW_EMULATION:
13591 L4_MABX_B.Multiport_Switch = PROPB_REAX_1_E4_DESIRED_POSITION_APV;
13592 break;
13593
13594 case ENUM_STEERING_POS_SIGNAL_SOURCE_T_ESTIMATION:
13595 L4_MABX_B.Multiport_Switch = DesiredSteeringAngle;
13596 break;
13597
13598 default:
13599 L4_MABX_B.Multiport_Switch = PROPB_REAX_1_E4_DESIRED_POSITION_APV;
13600 break;
13601 }
13602
13603 /* End of MultiPortSwitch: '<S960>/Multiport_Switch' */
13604 L4_MABX_B.Switch = L4_MABX_B.Multiport_Switch;
13605 } else {
13606 L4_MABX_B.Switch = L4_MABX_P.zero_Value_f;
13607 }
13608
13609 /* End of Switch: '<S960>/Switch' */
13610
13611 /* RelationalOperator: '<S970>/Operator_MX' incorporates:
13612 * Constant: '<S970>/MX'
13613 */
13614 L4_MABX_B.Operator_MX = (L4_MABX_B.Switch > L4_MABX_P.MX_Value);
13615
13616 /* RelationalOperator: '<S970>/Operator_MN' incorporates:
13617 * Constant: '<S970>/MN'
13618 */
13619 L4_MABX_B.Operator_MN = (L4_MABX_B.Switch < L4_MABX_P.MN_Value);
13620
13621 /* Switch: '<S970>/Switch2' incorporates:
13622 * Constant: '<S970>/MX'
13623 * Switch: '<S970>/Switch1'
13624 */
13625 if (L4_MABX_B.Operator_MX) {
13626 L4_MABX_B.Switch2 = L4_MABX_P.MX_Value;
13627 } else {
13628 if (L4_MABX_B.Operator_MN) {
13629 /* Switch: '<S970>/Switch1' incorporates:
13630 * Constant: '<S970>/MN'
13631 */
13632 L4_MABX_B.Switch1 = L4_MABX_P.MN_Value;
13633 } else {
13634 /* Switch: '<S970>/Switch1' */
13635 L4_MABX_B.Switch1 = L4_MABX_B.Switch;
13636 }
13637
13638 L4_MABX_B.Switch2 = L4_MABX_B.Switch1;
13639 }
13640
13641 /* End of Switch: '<S970>/Switch2' */
13642
13643 /* DataTypeConversion: '<S970>/DataType' */
13644 L4_MABX_B.DataType_n0 = L4_MABX_B.Switch2;
13645
13646 /* RelationalOperator: '<S962>/Operator' incorporates:
13647 * Constant: '<S943>/Constant1'
13648 * Constant: '<S943>/Constant6'
13649 */
13650 L4_MABX_B.Operator_dv = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13651 L4_MABX_P.Constant1_Value_o4);
13652
13653 /* Outputs for Enabled SubSystem: '<S943>/POSITION_CONTROL_MODE' incorporates:
13654 * EnablePort: '<S971>/Enable'
13655 */
13656 if (L4_MABX_B.Operator_dv) {
13657 /* Product: '<S971>/Product' incorporates:
13658 * Constant: '<S971>/Constant'
13659 */
13660 L4_MABX_B.Product = L4_MABX_B.DataType_n0 * L4_MABX_P.Constant_Value_de;
13661
13662 /* DataTypeConversion: '<S971>/Data Type Conversion' */
13663 PositionFinalLimited = floor(L4_MABX_B.Product);
13664 if (PositionFinalLimited < 2.147483648E+9) {
13665 if (PositionFinalLimited >= -2.147483648E+9) {
13666 i = (int32_T)PositionFinalLimited;
13667 } else {
13668 i = MIN_int32_T;
13669 }
13670 } else {
13671 i = MAX_int32_T;
13672 }
13673
13674 L4_MABX_B.Merge = i;
13675
13676 /* End of DataTypeConversion: '<S971>/Data Type Conversion' */
13677 }
13678
13679 /* End of Outputs for SubSystem: '<S943>/POSITION_CONTROL_MODE' */
13680
13681 /* RelationalOperator: '<S963>/Operator' incorporates:
13682 * Constant: '<S943>/Constant2'
13683 * Constant: '<S943>/Constant6'
13684 */
13685 L4_MABX_B.Operator_ns = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13686 L4_MABX_P.Constant2_Value_al);
13687
13688 /* Outputs for Enabled SubSystem: '<S943>/EXT_TRQ_CTRL_MODE_A' */
13689 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_ns, &L4_MABX_B.Merge,
13690 &L4_MABX_P.EXT_TRQ_CTRL_MODE_A);
13691
13692 /* End of Outputs for SubSystem: '<S943>/EXT_TRQ_CTRL_MODE_A' */
13693
13694 /* RelationalOperator: '<S964>/Operator' incorporates:
13695 * Constant: '<S943>/Constant3'
13696 * Constant: '<S943>/Constant6'
13697 */
13698 L4_MABX_B.Operator_kty = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13699 L4_MABX_P.Constant3_Value_m);
13700
13701 /* Outputs for Enabled SubSystem: '<S943>/ALL_CTRL_DISABLED' */
13702 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_kty, &L4_MABX_B.Merge,
13703 &L4_MABX_P.ALL_CTRL_DISABLED);
13704
13705 /* End of Outputs for SubSystem: '<S943>/ALL_CTRL_DISABLED' */
13706
13707 /* RelationalOperator: '<S965>/Operator' incorporates:
13708 * Constant: '<S943>/Constant4'
13709 * Constant: '<S943>/Constant6'
13710 */
13711 L4_MABX_B.Operator_io = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13712 L4_MABX_P.Constant4_Value_cy);
13713
13714 /* Outputs for Enabled SubSystem: '<S943>/EXT_TRQ_CTRL_MODE_B' */
13715 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_io, &L4_MABX_B.Merge,
13716 &L4_MABX_P.EXT_TRQ_CTRL_MODE_B);
13717
13718 /* End of Outputs for SubSystem: '<S943>/EXT_TRQ_CTRL_MODE_B' */
13719
13720 /* RelationalOperator: '<S966>/Operator' incorporates:
13721 * Constant: '<S943>/Constant5'
13722 * Constant: '<S943>/Constant6'
13723 */
13724 L4_MABX_B.Operator_be = (PROPB_REAX_1_E4_DESIRED_OPMODE_APV ==
13725 L4_MABX_P.Constant5_Value_g);
13726
13727 /* Outputs for Enabled SubSystem: '<S943>/EXT_TRQ_CTRL_MODE_C' */
13728 L4_MABX_ALL_CTRL_DISABLED(L4_MABX_B.Operator_be, &L4_MABX_B.Merge,
13729 &L4_MABX_P.EXT_TRQ_CTRL_MODE_C);
13730
13731 /* End of Outputs for SubSystem: '<S943>/EXT_TRQ_CTRL_MODE_C' */
13732
13733 /* DataTypeConversion: '<S942>/Data Type Conversion2' */
13734 L4_MABX_B.DataTypeConversion2_k = (uint32_T)L4_MABX_B.Merge;
13735
13736 /* S-Function (sfix_bitop): '<S947>/Operator' */
13737 L4_MABX_B.Operator_g = L4_MABX_B.DataTypeConversion2_k &
13738 L4_MABX_P.Operator_BitMask_fi;
13739
13740 /* DataTypeConversion: '<S947>/DataType' */
13741 tmp = L4_MABX_B.Operator_g;
13742 if (tmp > 255U) {
13743 tmp = 255U;
13744 }
13745
13746 L4_MABX_B.DataType_an = (uint8_T)tmp;
13747
13748 /* End of DataTypeConversion: '<S947>/DataType' */
13749
13750 /* S-Function (sfix_bitop): '<S948>/Operator' */
13751 L4_MABX_B.Operator_e = L4_MABX_B.DataTypeConversion2_k &
13752 L4_MABX_P.Operator_BitMask_ku;
13753
13754 /* DataTypeConversion: '<S948>/DataType' */
13755 tmp = L4_MABX_B.Operator_e;
13756 if (tmp > 65535U) {
13757 tmp = 65535U;
13758 }
13759
13760 L4_MABX_B.DataType_mz = (uint16_T)tmp;
13761
13762 /* End of DataTypeConversion: '<S948>/DataType' */
13763
13764 /* ArithShift: '<S942>/Shift_Arithmetic ' */
13765 L4_MABX_B.Shift_Arithmetic_o = (uint16_T)((uint32_T)L4_MABX_B.DataType_mz >> 8);
13766
13767 /* DataTypeConversion: '<S942>/Data Type Conversion4' */
13768 tmp_0 = L4_MABX_B.Shift_Arithmetic_o;
13769 if (tmp_0 > 255) {
13770 tmp_0 = 255U;
13771 }
13772
13773 L4_MABX_B.DataTypeConversion4_aa = (uint8_T)tmp_0;
13774
13775 /* End of DataTypeConversion: '<S942>/Data Type Conversion4' */
13776
13777 /* S-Function (sfix_bitop): '<S949>/Operator' */
13778 L4_MABX_B.Operator_k = L4_MABX_B.DataTypeConversion2_k &
13779 L4_MABX_P.Operator_BitMask_en;
13780
13781 /* DataTypeConversion: '<S949>/DataType' */
13782 L4_MABX_B.DataType_oi = L4_MABX_B.Operator_k;
13783
13784 /* ArithShift: '<S942>/Shift_Arithmetic 1' */
13785 L4_MABX_B.Shift_Arithmetic1_pm = L4_MABX_B.DataType_oi >> 16;
13786
13787 /* DataTypeConversion: '<S942>/Data Type Conversion5' */
13788 tmp = L4_MABX_B.Shift_Arithmetic1_pm;
13789 if (tmp > 255U) {
13790 tmp = 255U;
13791 }
13792
13793 L4_MABX_B.DataTypeConversion5_f = (uint8_T)tmp;
13794
13795 /* End of DataTypeConversion: '<S942>/Data Type Conversion5' */
13796
13797 /* S-Function (sfix_bitop): '<S950>/Operator' */
13798 L4_MABX_B.Operator_b = L4_MABX_B.DataTypeConversion2_k &
13799 L4_MABX_P.Operator_BitMask_hk;
13800
13801 /* DataTypeConversion: '<S950>/DataType' */
13802 L4_MABX_B.DataType_js = L4_MABX_B.Operator_b;
13803
13804 /* ArithShift: '<S942>/Shift_Arithmetic 2' */
13805 L4_MABX_B.Shift_Arithmetic2_oy = L4_MABX_B.DataType_js >> 24;
13806
13807 /* DataTypeConversion: '<S942>/Data Type Conversion6' */
13808 tmp = L4_MABX_B.Shift_Arithmetic2_oy;
13809 if (tmp > 255U) {
13810 tmp = 255U;
13811 }
13812
13813 L4_MABX_B.DataTypeConversion6_c = (uint8_T)tmp;
13814
13815 /* End of DataTypeConversion: '<S942>/Data Type Conversion6' */
13816
13817 /* Reshape: '<S972>/Reshape' incorporates:
13818 * Constant: '<S972>/Constant'
13819 */
13820 for (i = 0; i < 16; i++) {
13821 L4_MABX_B.Reshape_e[i] = L4_MABX_P.Repeating_Sequence_Stair_Out_ln[i];
13822 }
13823
13824 /* End of Reshape: '<S972>/Reshape' */
13825
13826 /* UnitDelay: '<S972>/Unit_Delay' */
13827 L4_MABX_B.Unit_Delay_p5 = L4_MABX_DW.Unit_Delay_DSTATE_ia;
13828
13829 /* UnitDelay: '<S973>/Unit Delay' */
13830 L4_MABX_B.UnitDelay_h = L4_MABX_DW.UnitDelay_DSTATE_a;
13831
13832 /* Switch: '<S976>/Switch1' incorporates:
13833 * Constant: '<S973>/E'
13834 * Constant: '<S973>/IV'
13835 * Switch: '<S975>/Switch1'
13836 */
13837 if (L4_MABX_B.Unit_Delay_p5) {
13838 L4_MABX_B.Switch1_l = L4_MABX_P.IV_Value_ox;
13839 } else {
13840 if (L4_MABX_P.E_Value_jv) {
13841 /* Sum: '<S973>/Subtract' incorporates:
13842 * Constant: '<S973>/Constant'
13843 * Switch: '<S975>/Switch1'
13844 */
13845 q0 = L4_MABX_P.Constant_Value_hu;
13846 tmp = q0 + L4_MABX_B.UnitDelay_h;
13847 if (tmp < q0) {
13848 tmp = MAX_uint32_T;
13849 }
13850
13851 L4_MABX_B.Subtract_ji = tmp;
13852
13853 /* End of Sum: '<S973>/Subtract' */
13854
13855 /* Switch: '<S975>/Switch1' */
13856 L4_MABX_B.Switch1_lm = L4_MABX_B.Subtract_ji;
13857 } else {
13858 /* Switch: '<S975>/Switch1' */
13859 L4_MABX_B.Switch1_lm = L4_MABX_B.UnitDelay_h;
13860 }
13861
13862 L4_MABX_B.Switch1_l = L4_MABX_B.Switch1_lm;
13863 }
13864
13865 /* End of Switch: '<S976>/Switch1' */
13866
13867 /* Selector: '<S972>/Selector' */
13868 L4_MABX_B.Selector_g = L4_MABX_B.Reshape_e[(int32_T)L4_MABX_B.Switch1_l - 1];
13869
13870 /* DataTypeConversion: '<S942>/Data Type Conversion1' */
13871 L4_MABX_B.DataTypeConversion1_o0 = L4_MABX_B.Selector_g;
13872
13873 /* S-Function (sfix_bitop): '<S955>/Operator' */
13874 L4_MABX_B.Operator_ju = (uint8_T)(L4_MABX_B.DataTypeConversion1_o0 &
13875 L4_MABX_P.Operator_BitMask_b5);
13876
13877 /* DataTypeConversion: '<S955>/DataType' */
13878 L4_MABX_B.DataType_di = L4_MABX_B.Operator_ju;
13879
13880 /* DataTypeConversion: '<S941>/Data Type Conversion' incorporates:
13881 * Constant: '<S941>/Priority'
13882 */
13883 L4_MABX_B.DataTypeConversion_by = L4_MABX_P.Priority_Value_p;
13884
13885 /* ArithShift: '<S941>/Shift_Arithmetic ' */
13886 L4_MABX_B.Shift_Arithmetic_f = L4_MABX_B.DataTypeConversion_by << 26;
13887
13888 /* DataTypeConversion: '<S941>/Data Type Conversion1' incorporates:
13889 * Constant: '<S941>/ExtendedDataPage'
13890 */
13891 L4_MABX_B.DataTypeConversion1_n3g = L4_MABX_P.ExtendedDataPage_Value_e;
13892
13893 /* ArithShift: '<S941>/Shift_Arithmetic 1' */
13894 L4_MABX_B.Shift_Arithmetic1_k = L4_MABX_B.DataTypeConversion1_n3g << 25;
13895
13896 /* DataTypeConversion: '<S941>/Data Type Conversion2' incorporates:
13897 * Constant: '<S941>/DataPage'
13898 */
13899 L4_MABX_B.DataTypeConversion2_b4 = L4_MABX_P.DataPage_Value_l;
13900
13901 /* ArithShift: '<S941>/Shift_Arithmetic 2' */
13902 L4_MABX_B.Shift_Arithmetic2_fx = L4_MABX_B.DataTypeConversion2_b4 << 24;
13903
13904 /* DataTypeConversion: '<S941>/Data Type Conversion3' incorporates:
13905 * Constant: '<S941>/PDUFormat'
13906 */
13907 L4_MABX_B.DataTypeConversion3_b = L4_MABX_P.PDUFormat_Value_h;
13908
13909 /* ArithShift: '<S941>/Shift_Arithmetic 3' */
13910 L4_MABX_B.Shift_Arithmetic3_k = L4_MABX_B.DataTypeConversion3_b << 16;
13911
13912 /* DataTypeConversion: '<S941>/Data Type Conversion4' incorporates:
13913 * Constant: '<S941>/PDUSpecific'
13914 */
13915 L4_MABX_B.DataTypeConversion4_ds = L4_MABX_P.PDUSpecific_Value_a;
13916
13917 /* ArithShift: '<S941>/Shift_Arithmetic 4' */
13918 L4_MABX_B.Shift_Arithmetic4_g = L4_MABX_B.DataTypeConversion4_ds << 8;
13919
13920 /* DataTypeConversion: '<S941>/Data Type Conversion5' incorporates:
13921 * Constant: '<S941>/SourceAddress'
13922 */
13923 L4_MABX_B.DataTypeConversion5_oq = L4_MABX_P.SourceAddress_Value_b;
13924
13925 /* S-Function (sfix_bitop): '<S946>/Operator' */
13926 L4_MABX_B.Operator_c = L4_MABX_B.Shift_Arithmetic_f |
13927 L4_MABX_B.Shift_Arithmetic1_k | L4_MABX_B.Shift_Arithmetic2_fx |
13928 L4_MABX_B.Shift_Arithmetic3_k | L4_MABX_B.Shift_Arithmetic4_g |
13929 L4_MABX_B.DataTypeConversion5_oq;
13930
13931 /* DataTypeConversion: '<S946>/DataType' */
13932 L4_MABX_B.DataType_oio = L4_MABX_B.Operator_c;
13933
13934 /* DataTypeConversion: '<S942>/Data Type Conversion3' */
13935 L4_MABX_B.DataTypeConversion3_p0 = L4_MABX_B.DataType_oio;
13936
13937 /* S-Function (sfix_bitop): '<S951>/Operator' */
13938 L4_MABX_B.Operator_ko = L4_MABX_B.DataTypeConversion3_p0 &
13939 L4_MABX_P.Operator_BitMask_lj;
13940
13941 /* DataTypeConversion: '<S951>/DataType' */
13942 tmp = L4_MABX_B.Operator_ko;
13943 if (tmp > 255U) {
13944 tmp = 255U;
13945 }
13946
13947 L4_MABX_B.DataType_ao = (uint8_T)tmp;
13948
13949 /* End of DataTypeConversion: '<S951>/DataType' */
13950
13951 /* S-Function (sfix_bitop): '<S952>/Operator' */
13952 L4_MABX_B.Operator_cm = L4_MABX_B.DataTypeConversion3_p0 &
13953 L4_MABX_P.Operator_BitMask_op;
13954
13955 /* DataTypeConversion: '<S952>/DataType' */
13956 tmp = L4_MABX_B.Operator_cm;
13957 if (tmp > 65535U) {
13958 tmp = 65535U;
13959 }
13960
13961 L4_MABX_B.DataType_nbu = (uint16_T)tmp;
13962
13963 /* End of DataTypeConversion: '<S952>/DataType' */
13964
13965 /* ArithShift: '<S942>/Shift_Arithmetic 3' */
13966 L4_MABX_B.Shift_Arithmetic3_ph = (uint16_T)((uint32_T)L4_MABX_B.DataType_nbu >>
13967 8);
13968
13969 /* DataTypeConversion: '<S942>/Data Type Conversion8' */
13970 tmp_0 = L4_MABX_B.Shift_Arithmetic3_ph;
13971 if (tmp_0 > 255) {
13972 tmp_0 = 255U;
13973 }
13974
13975 L4_MABX_B.DataTypeConversion8_g = (uint8_T)tmp_0;
13976
13977 /* End of DataTypeConversion: '<S942>/Data Type Conversion8' */
13978
13979 /* S-Function (sfix_bitop): '<S953>/Operator' */
13980 L4_MABX_B.Operator_ed = L4_MABX_B.DataTypeConversion3_p0 &
13981 L4_MABX_P.Operator_BitMask_hz;
13982
13983 /* DataTypeConversion: '<S953>/DataType' */
13984 L4_MABX_B.DataType_i = L4_MABX_B.Operator_ed;
13985
13986 /* ArithShift: '<S942>/Shift_Arithmetic 4' */
13987 L4_MABX_B.Shift_Arithmetic4_n = L4_MABX_B.DataType_i >> 16;
13988
13989 /* DataTypeConversion: '<S942>/Data Type Conversion9' */
13990 tmp = L4_MABX_B.Shift_Arithmetic4_n;
13991 if (tmp > 255U) {
13992 tmp = 255U;
13993 }
13994
13995 L4_MABX_B.DataTypeConversion9_a = (uint8_T)tmp;
13996
13997 /* End of DataTypeConversion: '<S942>/Data Type Conversion9' */
13998
13999 /* S-Function (sfix_bitop): '<S954>/Operator' */
14000 L4_MABX_B.Operator_b4 = L4_MABX_B.DataTypeConversion3_p0 &
14001 L4_MABX_P.Operator_BitMask_lz;
14002
14003 /* DataTypeConversion: '<S954>/DataType' */
14004 L4_MABX_B.DataType_nb = L4_MABX_B.Operator_b4;
14005
14006 /* ArithShift: '<S942>/Shift_Arithmetic 5' */
14007 L4_MABX_B.Shift_Arithmetic5_p = L4_MABX_B.DataType_nb >> 24;
14008
14009 /* DataTypeConversion: '<S942>/Data Type Conversion10' */
14010 tmp = L4_MABX_B.Shift_Arithmetic5_p;
14011 if (tmp > 255U) {
14012 tmp = 255U;
14013 }
14014
14015 L4_MABX_B.DataTypeConversion10_j = (uint8_T)tmp;
14016
14017 /* End of DataTypeConversion: '<S942>/Data Type Conversion10' */
14018
14019 /* Sum: '<S942>/Add' incorporates:
14020 * Constant: '<S942>/Constant'
14021 * Constant: '<S942>/Constant1'
14022 */
14023 L4_MABX_B.Add_g = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
14024 (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
14025 ((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
14026 (uint8_T)((uint32_T)L4_MABX_B.DataTypeConversion_f1 + L4_MABX_B.DataType_an)
14027 + L4_MABX_B.DataTypeConversion4_aa) + L4_MABX_B.DataTypeConversion5_f) +
14028 L4_MABX_B.DataTypeConversion6_c) + L4_MABX_P.Constant_Value_on) +
14029 L4_MABX_P.Constant1_Value_dh) + L4_MABX_B.DataType_ao) +
14030 L4_MABX_B.DataTypeConversion8_g) + L4_MABX_B.DataTypeConversion9_a)
14031 + L4_MABX_B.DataTypeConversion10_j) + L4_MABX_B.DataType_di);
14032
14033 /* ArithShift: '<S942>/Shift_Arithmetic 6' */
14034 L4_MABX_B.Shift_Arithmetic6_e = (uint8_T)((uint32_T)L4_MABX_B.Add_g >> 4);
14035
14036 /* Sum: '<S942>/Add1' */
14037 L4_MABX_B.Add1_d3 = (uint8_T)((uint32_T)L4_MABX_B.Shift_Arithmetic6_e +
14038 L4_MABX_B.Add_g);
14039
14040 /* S-Function (sfix_bitop): '<S956>/Operator' */
14041 L4_MABX_B.Operator_ob = (uint8_T)(L4_MABX_B.Add1_d3 &
14042 L4_MABX_P.Operator_BitMask_os);
14043
14044 /* DataTypeConversion: '<S956>/DataType' */
14045 L4_MABX_B.DataType_k2 = L4_MABX_B.Operator_ob;
14046
14047 /* ArithShift: '<S942>/Shift_Arithmetic 7' */
14048 L4_MABX_B.Shift_Arithmetic7_a = (uint8_T)(L4_MABX_B.DataType_k2 << 4);
14049
14050 /* S-Function (sfix_bitop): '<S957>/Operator' */
14051 L4_MABX_B.Operator_lp = (uint8_T)(L4_MABX_B.DataType_di |
14052 L4_MABX_B.Shift_Arithmetic7_a);
14053
14054 /* DataTypeConversion: '<S957>/DataType' */
14055 L4_MABX_B.DataType_dy = L4_MABX_B.Operator_lp;
14056
14057 /* DataTypeConversion: '<S908>/Data Type Conversion1' incorporates:
14058 * Constant: '<S942>/Constant'
14059 * Constant: '<S942>/Constant1'
14060 */
14061 L4_MABX_B.DataTypeConversion1_e[0] = L4_MABX_B.DataTypeConversion_f1;
14062 L4_MABX_B.DataTypeConversion1_e[1] = L4_MABX_B.DataType_an;
14063 L4_MABX_B.DataTypeConversion1_e[2] = L4_MABX_B.DataTypeConversion4_aa;
14064 L4_MABX_B.DataTypeConversion1_e[3] = L4_MABX_B.DataTypeConversion5_f;
14065 L4_MABX_B.DataTypeConversion1_e[4] = L4_MABX_B.DataTypeConversion6_c;
14066 L4_MABX_B.DataTypeConversion1_e[5] = L4_MABX_P.Constant_Value_on;
14067 L4_MABX_B.DataTypeConversion1_e[6] = L4_MABX_P.Constant1_Value_dh;
14068 L4_MABX_B.DataTypeConversion1_e[7] = L4_MABX_B.DataType_dy;
14069
14070 /* Outputs for Enabled SubSystem: '<S929>/PropB_REAX_1_E4' incorporates:
14071 * EnablePort: '<S931>/Enable'
14072 */
14073 if (L4_MABX_B.Operator_k1) {
14074 /* S-Function (rti_commonblock): '<S931>/S-Function1' incorporates:
14075 * Constant: '<S929>/Constant'
14076 * Constant: '<S929>/Constant1'
14077 */
14078 /* This comment workarounds a code generation problem */
14079
14080 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
14081 {
14082 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14083 0x00 };
14084
14085 Float32 delayTime = 0.0;
14086
14087 /* link this pointer to CAN_Msg for use in initialize_io_units() */
14088 CANTP1_PTR_M1_C2_XTD_0x18FFEFE4 = &(CAN_Msg[0]);
14089
14090 /* ... perform loop-back if required */
14091 if (L4_MABX_P.Constant1_Value_k > 0.5) {
14092 /* ... updating the used tx-clientbuffer */
14093 can_tp1_msg_update_all( CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->module,
14094 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->queue );
14095
14096 /* ... Read status and timestamp info perform loop-back (previous message) */
14097 can_tp1_tx_msg_read_loopback(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4,
14098 8, // datalen
14099 &(CAN_Msg[0]),
14100 CANTP1_RX_SPMSG_M1_C2_XTD);
14101
14102 /* Convert timestamp */
14103 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14104 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14105 rtk_dsts_time_to_simtime_convert
14106 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14107 }
14108 } else {
14109 /* ... Read status and timestamp info (previous message) */
14110 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4);
14111
14112 /* Convert timestamp */
14113 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14114 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14115 rtk_dsts_time_to_simtime_convert
14116 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14117 }
14118 }
14119
14120 /* Messages with timestamp zero have been received in pause/stop state
14121 and must not be handled.
14122 */
14123 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp > 0.0) {
14124 L4_MABX_B.SFunction1_o1_o = (real_T)
14125 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->processed;
14126 L4_MABX_B.SFunction1_o2_g = (real_T)
14127 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->timestamp;
14128 L4_MABX_B.SFunction1_o3_o = (real_T)
14129 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->deltatime;
14130 L4_MABX_B.SFunction1_o4_de = (real_T)
14131 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFEFE4->delaytime;
14132 }
14133
14134 /* ... Encode Simulink signals of TX and RM blocks*/
14135 {
14136 rtican_Signal_t CAN_Sgn;
14137 UInt32 i;
14138
14139 /* Initialize the static message data to zero */
14140 for (i=0; i<8; i++ )
14141 CAN_Msg[i] = 0;
14142
14143 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
14144 /* Add or substract 0.5 in order to round to nearest integer */
14145 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_e[0] ) +
14146 0.5);
14147 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14148 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14149
14150 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
14151 /* Add or substract 0.5 in order to round to nearest integer */
14152 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_e[1] ) +
14153 0.5);
14154 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14155 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
14156
14157 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
14158 /* Add or substract 0.5 in order to round to nearest integer */
14159 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_e[2] ) +
14160 0.5);
14161 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14162 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14163
14164 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
14165 /* Add or substract 0.5 in order to round to nearest integer */
14166 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_e[3] ) +
14167 0.5);
14168 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14169 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
14170
14171 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
14172 /* Add or substract 0.5 in order to round to nearest integer */
14173 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_e[4] ) +
14174 0.5);
14175 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14176 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
14177
14178 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
14179 /* Add or substract 0.5 in order to round to nearest integer */
14180 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_e[5] ) +
14181 0.5);
14182 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14183 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
14184
14185 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
14186 /* Add or substract 0.5 in order to round to nearest integer */
14187 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_e[6] ) +
14188 0.5);
14189 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14190 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
14191
14192 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
14193 /* Add or substract 0.5 in order to round to nearest integer */
14194 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_e[7] ) +
14195 0.5);
14196 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14197 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
14198 }
14199
14200 delayTime = (Float32) L4_MABX_P.Constant_Value_d3 / (1700);
14201
14202 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14203 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFEFE4], 8,
14204 &(CAN_Msg[0]), delayTime);
14205 }
14206 }
14207
14208 /* End of Outputs for SubSystem: '<S929>/PropB_REAX_1_E4' */
14209
14210 /* Outputs for Enabled SubSystem: '<S930>/PropB_REAX_1_E4' incorporates:
14211 * EnablePort: '<S932>/Enable'
14212 */
14213 if (L4_MABX_B.EnablePropB_ReAX_CAN6) {
14214 /* S-Function (rti_commonblock): '<S932>/S-Function1' incorporates:
14215 * Constant: '<S930>/Constant'
14216 * Constant: '<S930>/Constant1'
14217 */
14218 /* This comment workarounds a code generation problem */
14219
14220 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
14221 {
14222 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14223 0x00 };
14224
14225 Float32 delayTime = 0.0;
14226
14227 /* link this pointer to CAN_Msg for use in initialize_io_units() */
14228 CANTP1_PTR_M3_C2_XTD_0x18FFEFE4 = &(CAN_Msg[0]);
14229
14230 /* ... perform loop-back if required */
14231 if (L4_MABX_P.Constant1_Value_d > 0.5) {
14232 /* ... updating the used tx-clientbuffer */
14233 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->module,
14234 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->queue );
14235
14236 /* ... Read status and timestamp info perform loop-back (previous message) */
14237 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4,
14238 8, // datalen
14239 &(CAN_Msg[0]),
14240 CANTP1_RX_SPMSG_M3_C2_XTD);
14241
14242 /* Convert timestamp */
14243 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14244 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14245 rtk_dsts_time_to_simtime_convert
14246 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14247 }
14248 } else {
14249 /* ... Read status and timestamp info (previous message) */
14250 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4);
14251
14252 /* Convert timestamp */
14253 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->processed) {
14254 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp =
14255 rtk_dsts_time_to_simtime_convert
14256 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp);
14257 }
14258 }
14259
14260 /* Messages with timestamp zero have been received in pause/stop state
14261 and must not be handled.
14262 */
14263 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp > 0.0) {
14264 L4_MABX_B.SFunction1_o1_gn = (real_T)
14265 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->processed;
14266 L4_MABX_B.SFunction1_o2_jo = (real_T)
14267 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->timestamp;
14268 L4_MABX_B.SFunction1_o3_cr = (real_T)
14269 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->deltatime;
14270 L4_MABX_B.SFunction1_o4_g = (real_T)
14271 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFEFE4->delaytime;
14272 }
14273
14274 /* ... Encode Simulink signals of TX and RM blocks*/
14275 {
14276 rtican_Signal_t CAN_Sgn;
14277 UInt32 i;
14278
14279 /* Initialize the static message data to zero */
14280 for (i=0; i<8; i++ )
14281 CAN_Msg[i] = 0;
14282
14283 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
14284 /* Add or substract 0.5 in order to round to nearest integer */
14285 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_e[0] ) +
14286 0.5);
14287 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14288 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14289
14290 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
14291 /* Add or substract 0.5 in order to round to nearest integer */
14292 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_e[1] ) +
14293 0.5);
14294 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14295 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
14296
14297 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
14298 /* Add or substract 0.5 in order to round to nearest integer */
14299 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_e[2] ) +
14300 0.5);
14301 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14302 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14303
14304 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
14305 /* Add or substract 0.5 in order to round to nearest integer */
14306 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_e[3] ) +
14307 0.5);
14308 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14309 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
14310
14311 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
14312 /* Add or substract 0.5 in order to round to nearest integer */
14313 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_e[4] ) +
14314 0.5);
14315 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14316 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
14317
14318 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
14319 /* Add or substract 0.5 in order to round to nearest integer */
14320 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_e[5] ) +
14321 0.5);
14322 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14323 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
14324
14325 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
14326 /* Add or substract 0.5 in order to round to nearest integer */
14327 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_e[6] ) +
14328 0.5);
14329 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14330 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
14331
14332 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
14333 /* Add or substract 0.5 in order to round to nearest integer */
14334 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_e[7] ) +
14335 0.5);
14336 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14337 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
14338 }
14339
14340 delayTime = (Float32) L4_MABX_P.Constant_Value_hr / (1700);
14341
14342 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14343 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFEFE4], 8,
14344 &(CAN_Msg[0]), delayTime);
14345 }
14346 }
14347
14348 /* End of Outputs for SubSystem: '<S930>/PropB_REAX_1_E4' */
14349
14350 /* DataTypeConversion: '<S909>/Data Type Conversion' incorporates:
14351 * Constant: '<S820>/CANT_VDC2_0B_CHANNEL_APV'
14352 */
14353 L4_MABX_B.DataTypeConversion_lq = (uint8_T)
14354 L4_MABX_P.CANT_VDC2_0B_CHANNEL_APV_Value;
14355
14356 /* S-Function (sfix_bitop): '<S937>/Operator' */
14357 L4_MABX_B.Operator_fl = (uint8_T)(L4_MABX_B.DataTypeConversion_lq &
14358 L4_MABX_P.Operator_BitMask_i);
14359
14360 /* DataTypeConversion: '<S937>/DataType' */
14361 L4_MABX_B.DataType_pp = L4_MABX_B.Operator_fl;
14362
14363 /* ArithShift: '<S909>/Shift_Arithmetic 3' */
14364 L4_MABX_B.Shift_Arithmetic3_bf = ldexp(L4_MABX_B.DataType_pp, (-4));
14365
14366 /* DataTypeConversion: '<S909>/Data Type Conversion6' */
14367 L4_MABX_B.DataTypeConversion6_j = (L4_MABX_B.Shift_Arithmetic3_bf != 0.0);
14368
14369 /* Outputs for Enabled SubSystem: '<S939>/VDC2_0B' incorporates:
14370 * EnablePort: '<S940>/Enable'
14371 */
14372 if (L4_MABX_B.DataTypeConversion6_j) {
14373 /* S-Function (rti_commonblock): '<S940>/S-Function1' */
14374 /* This comment workarounds a code generation problem */
14375
14376 /* dSPACE RTICAN TX Message Block: "VDC2_0B" Id:418384139 */
14377 {
14378 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
14379
14380 Float32 delayTime = 0.0;
14381
14382 /* ... Read status and timestamp info (previous message) */
14383 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]);
14384
14385 /* Convert timestamp */
14386 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->processed) {
14387 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp =
14388 rtk_dsts_time_to_simtime_convert
14389 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp);
14390 }
14391
14392 /* Messages with timestamp zero have been received in pause/stop state
14393 and must not be handled.
14394 */
14395 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp > 0.0) {
14396 L4_MABX_B.SFunction1_o1_h = (real_T)
14397 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->processed;
14398 L4_MABX_B.SFunction1_o2_m5 = (real_T)
14399 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->timestamp;
14400 L4_MABX_B.SFunction1_o3_m = (real_T)
14401 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->deltatime;
14402 L4_MABX_B.SFunction1_o4_ao = (real_T)
14403 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B]->delaytime;
14404 }
14405
14406 /* ... Encode Simulink signals of TX and RM blocks*/
14407 {
14408 rtican_Signal_t CAN_Sgn;
14409
14410 /* ...... "SteerWheelAngle" (0|16, standard signal, unsigned int, little endian) */
14411 /* Add or substract 0.5 in order to round to nearest integer */
14412 CAN_Sgn.UnsignedSgn = (UInt32) (( SteerWheelAngle - ( -31.374 ) ) /
14413 0.0009765625 + 0.5);
14414 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14415 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14416 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
14417
14418 /* ...... "SteerWheelTurnCounter" (16|6, standard signal, unsigned int, little endian) */
14419 /* Add or substract 0.5 in order to round to nearest integer */
14420 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.SFunction1_o2_pd - ( -32 ) +
14421 0.5);
14422 CAN_Sgn.UnsignedSgn &= 0x0000003F;
14423 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14424
14425 /* ...... "SteerWheelAngleSensorType" (22|2, standard signal, unsigned int, little endian) */
14426 /* Add or substract 0.5 in order to round to nearest integer */
14427 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o3_ig ) + 0.5);
14428 CAN_Sgn.UnsignedSgn &= 0x00000003;
14429 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
14430 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14431
14432 /* ...... "YawRate" (24|16, standard signal, unsigned int, little endian) */
14433 /* Add or substract 0.5 in order to round to nearest integer */
14434 CAN_Sgn.UnsignedSgn = (UInt32) (( YawRate - ( -3.92 ) ) /
14435 0.0001220703125 + 0.5);
14436 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14437 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
14438 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
14439
14440 /* ...... "LateralAcceleration" (40|16, standard signal, unsigned int, little endian) */
14441 /* Add or substract 0.5 in order to round to nearest integer */
14442 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o5_m - ( -15.687 )
14443 ) / 0.00048828125 + 0.5);
14444 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14445 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
14446 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte1;
14447
14448 /* ...... "LongitudinalAcceleration" (56|8, standard signal, unsigned int, little endian) */
14449 /* Add or substract 0.5 in order to round to nearest integer */
14450 CAN_Sgn.UnsignedSgn = (UInt32) (( SPN1810_LongitudinalAcceleration -
14451 ( -12.5 ) ) / 0.1 + 0.5);
14452 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14453 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
14454 }
14455
14456 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14457 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B], 8,
14458 &(CAN_Msg[0]), delayTime);
14459 }
14460 }
14461
14462 /* End of Outputs for SubSystem: '<S939>/VDC2_0B' */
14463
14464 /* S-Function (sfix_bitop): '<S933>/Operator' */
14465 L4_MABX_B.Operator_eq = (uint8_T)(L4_MABX_B.DataTypeConversion_lq &
14466 L4_MABX_P.Operator_BitMask_h1);
14467
14468 /* DataTypeConversion: '<S933>/DataType' */
14469 L4_MABX_B.DataType_nnu = L4_MABX_B.Operator_eq;
14470
14471 /* S-Function (sfix_bitop): '<S934>/Operator' */
14472 L4_MABX_B.Operator_ho2 = (uint8_T)(L4_MABX_B.DataTypeConversion_lq &
14473 L4_MABX_P.Operator_BitMask_ny);
14474
14475 /* DataTypeConversion: '<S934>/DataType' */
14476 L4_MABX_B.DataType_j = L4_MABX_B.Operator_ho2;
14477
14478 /* S-Function (sfix_bitop): '<S935>/Operator' */
14479 L4_MABX_B.Operator_mv = (uint8_T)(L4_MABX_B.DataTypeConversion_lq &
14480 L4_MABX_P.Operator_BitMask_m);
14481
14482 /* DataTypeConversion: '<S935>/DataType' */
14483 L4_MABX_B.DataType_o = L4_MABX_B.Operator_mv;
14484
14485 /* S-Function (sfix_bitop): '<S936>/Operator' */
14486 L4_MABX_B.Operator_e5 = (uint8_T)(L4_MABX_B.DataTypeConversion_lq &
14487 L4_MABX_P.Operator_BitMask_mx);
14488
14489 /* DataTypeConversion: '<S936>/DataType' */
14490 L4_MABX_B.DataType_a = L4_MABX_B.Operator_e5;
14491
14492 /* S-Function (sfix_bitop): '<S938>/Operator' */
14493 L4_MABX_B.Operator_pz = (uint8_T)(L4_MABX_B.DataTypeConversion_lq &
14494 L4_MABX_P.Operator_BitMask_pi);
14495
14496 /* DataTypeConversion: '<S938>/DataType' */
14497 L4_MABX_B.DataType_jn = L4_MABX_B.Operator_pz;
14498
14499 /* DataTypeConversion: '<S909>/Data Type Conversion1' */
14500 L4_MABX_B.DataTypeConversion1_fj = (L4_MABX_B.DataType_nnu != 0);
14501
14502 /* ArithShift: '<S909>/Shift_Arithmetic ' */
14503 L4_MABX_B.Shift_Arithmetic_d = ldexp(L4_MABX_B.DataType_j, (-1));
14504
14505 /* DataTypeConversion: '<S909>/Data Type Conversion3' */
14506 L4_MABX_B.DataTypeConversion3_cs = (L4_MABX_B.Shift_Arithmetic_d != 0.0);
14507
14508 /* ArithShift: '<S909>/Shift_Arithmetic 1' */
14509 L4_MABX_B.Shift_Arithmetic1_i = ldexp(L4_MABX_B.DataType_o, (-2));
14510
14511 /* DataTypeConversion: '<S909>/Data Type Conversion4' */
14512 L4_MABX_B.DataTypeConversion4_hh = (L4_MABX_B.Shift_Arithmetic1_i != 0.0);
14513
14514 /* ArithShift: '<S909>/Shift_Arithmetic 2' */
14515 L4_MABX_B.Shift_Arithmetic2_d = ldexp(L4_MABX_B.DataType_a, (-3));
14516
14517 /* DataTypeConversion: '<S909>/Data Type Conversion5' */
14518 L4_MABX_B.DataTypeConversion5_ck = (L4_MABX_B.Shift_Arithmetic2_d != 0.0);
14519
14520 /* ArithShift: '<S909>/Shift_Arithmetic 4' */
14521 L4_MABX_B.Shift_Arithmetic4_c = ldexp(L4_MABX_B.DataType_jn, (-5));
14522
14523 /* DataTypeConversion: '<S909>/Data Type Conversion7' */
14524 L4_MABX_B.DataTypeConversion7_jc = (L4_MABX_B.Shift_Arithmetic4_c != 0.0);
14525
14526 /* Logic: '<S970>/Logical Operator1' */
14527 L4_MABX_B.LogicalOperator1_c = !L4_MABX_B.Operator_MX;
14528
14529 /* Logic: '<S970>/Logical Operator' */
14530 L4_MABX_B.LogicalOperator_os = (L4_MABX_B.LogicalOperator1_c &&
14531 L4_MABX_B.Operator_MN);
14532
14533 /* RelationalOperator: '<S974>/Operator' */
14534 L4_MABX_B.Operator_pi = (L4_MABX_B.Switch1_l == L4_MABX_B.Width_lp);
14535
14536 /* End of Outputs for SubSystem: '<S815>/CAN_TX_10ms' */
14537
14538 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_20ms' */
14539
14540 /* RateTransition: '<S981>/TmpRTBAtDivide1Inport1' */
14541 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
14542 L4_MABX_B.BrakingPID_Y_j = L4_MABX_B.BrakingPID_Y_k;
14543 L4_MABX_B.AutonomousOutputEnabled_g = AutonomousOutputEnabled;
14544 L4_MABX_B.BrakingControlActive_e = L4_MABX_B.F_Brake_control_active;
14545 L4_MABX_B.TmpRTBAtLogicalOperator8Inport1 = AutonomousOutputEnabled;
14546 L4_MABX_B.TmpRTBAtLogicalOperator1Inport2 = AutonomousOutputEnabled;
14547 L4_MABX_B.TmpRTBAtUnit_DelayInport1 = AutonomousOutputEnabled;
14548 L4_MABX_B.BrakingPID_Y_je = L4_MABX_B.BrakingPID_Y_k;
14549 L4_MABX_B.FrontAxleSpeed_n = L4_MABX_B.SFunction1_o1_in;
14550 L4_MABX_B.SPN1807_SteeringWheelAngle_b = SteerWheelAngle;
14551 L4_MABX_B.SPN1808_YawRate_m = YawRate;
14552 L4_MABX_B.SPN1810_LongitudinalAccelerat_c = SPN1810_LongitudinalAcceleration;
14553 }
14554
14555 /* End of Outputs for SubSystem: '<S815>/CAN_TX_20ms' */
14556
14557 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_5000ms' */
14558
14559 /* RateTransition: '<S1010>/TmpRTBAtOperatorInport2' */
14560 if (L4_MABX_M->Timing.RateInteraction.TID0_7 == 1) {
14561 L4_MABX_B.TmpRTBAtOperatorInport2 = AutonomousOutputEnabled;
14562 }
14563
14564 /* End of RateTransition: '<S1010>/TmpRTBAtOperatorInport2' */
14565
14566 /* End of Outputs for SubSystem: '<S815>/CAN_TX_5000ms' */
14567
14568 /* Outputs for Enabled SubSystem: '<S626>/TC1_03_05' incorporates:
14569 * EnablePort: '<S627>/Enable'
14570 */
14571 /* Constant: '<S441>/Constant' */
14572 if (L4_MABX_P.Constant_Value_ds) {
14573 /* S-Function (rti_commonblock): '<S627>/S-Function1' */
14574 /* This comment workarounds a code generation problem */
14575
14576 /* dSPACE RTICAN RX Message Block: "TC1_03_05" Id:201392901 */
14577 {
14578 UInt32 *CAN_Msg;
14579 static dsfloat time_old = 0.0;
14580
14581 /* Read status and timestamp info (previous message) */
14582 if (can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].timestamp !=
14583 time_old) {
14584 /* ... save timestamp info for the calculation of the RX status
14585 during the consecutive sample hit*/
14586 time_old = can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].
14587 timestamp;
14588
14589 /* ... set the processed flag to one */
14590 L4_MABX_B.SFunction1_o26 = 1.0;
14591 L4_MABX_B.SFunction1_o27 = (real_T)
14592 can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].timestamp;
14593 L4_MABX_B.SFunction1_o28 = (real_T)
14594 can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].deltatime;
14595 CAN_Msg = can_type1_M3_C1_XTD[CANTP1_M3_C1_RXSRVC_XTD_0xC010305].data;
14596
14597 /* Decode CAN message */
14598 {
14599 {
14600 rtican_Signal_t CAN_Sgn;
14601
14602 /* ...... "SPN681_TransGearShiftInhibitReq" (0|2, standard signal, unsigned int, little endian) */
14603 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14604 CAN_Sgn.UnsignedSgn &= 0x00000003;
14605 L4_MABX_B.SFunction1_o1_ln = ((real_T) CAN_Sgn.UnsignedSgn);
14606
14607 /* ...... "SPN682_TransTrqConvLockupDisReq" (2|2, standard signal, unsigned int, little endian) */
14608 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14609 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14610 CAN_Sgn.UnsignedSgn &= 0x00000003;
14611 L4_MABX_B.SFunction1_o2_cu = ((real_T) CAN_Sgn.UnsignedSgn);
14612
14613 /* ...... "SPN683_DisengageDrivelineReq" (4|2, standard signal, unsigned int, little endian) */
14614 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14615 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14616 CAN_Sgn.UnsignedSgn &= 0x00000003;
14617 L4_MABX_B.SFunction1_o3_ck = ((real_T) CAN_Sgn.UnsignedSgn);
14618
14619 /* ...... "SPN4242_TransRevGearShiftInhibRq" (6|2, standard signal, unsigned int, little endian) */
14620 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14621 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14622 CAN_Sgn.UnsignedSgn &= 0x00000003;
14623 L4_MABX_B.SFunction1_o4_mjq = ((real_T) CAN_Sgn.UnsignedSgn);
14624
14625 /* ...... "SPN684_RequestedPercClutchSlip" (8|8, standard signal, unsigned int, little endian) */
14626 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
14627 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14628 L4_MABX_B.SFunction1_o5_ma = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
14629
14630 /* ...... "SPN525_TransRequestedGear" (16|8, standard signal, unsigned int, little endian) */
14631 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
14632 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14633 L4_MABX_B.SFunction1_o6_n = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn) );
14634
14635 /* ...... "SPN685_DisengageDiffLockRqFrAx1" (24|2, standard signal, unsigned int, little endian) */
14636 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14637 CAN_Sgn.UnsignedSgn &= 0x00000003;
14638 L4_MABX_B.SFunction1_o7_gi = ((real_T) CAN_Sgn.UnsignedSgn);
14639
14640 /* ...... "SPN686_DisengageDiffLockRqFrAx2" (26|2, standard signal, unsigned int, little endian) */
14641 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14642 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14643 CAN_Sgn.UnsignedSgn &= 0x00000003;
14644 L4_MABX_B.SFunction1_o8_k = ((real_T) CAN_Sgn.UnsignedSgn);
14645
14646 /* ...... "SPN687_DisengageDiffLockRqRrAx1" (28|2, standard signal, unsigned int, little endian) */
14647 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14648 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14649 CAN_Sgn.UnsignedSgn &= 0x00000003;
14650 L4_MABX_B.SFunction1_o9_o = ((real_T) CAN_Sgn.UnsignedSgn);
14651
14652 /* ...... "SPN688_DisengageDiffLockRqRrAx2" (30|2, standard signal, unsigned int, little endian) */
14653 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
14654 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14655 CAN_Sgn.UnsignedSgn &= 0x00000003;
14656 L4_MABX_B.SFunction1_o10_f = ((real_T) CAN_Sgn.UnsignedSgn);
14657
14658 /* ...... "SPN689_DisengageDiffLockRqC" (32|2, standard signal, unsigned int, little endian) */
14659 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14660 CAN_Sgn.UnsignedSgn &= 0x00000003;
14661 L4_MABX_B.SFunction1_o11 = ((real_T) CAN_Sgn.UnsignedSgn);
14662
14663 /* ...... "SPN690_DisengageDiffLockRqCF" (34|2, standard signal, unsigned int, little endian) */
14664 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14665 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14666 CAN_Sgn.UnsignedSgn &= 0x00000003;
14667 L4_MABX_B.SFunction1_o12 = ((real_T) CAN_Sgn.UnsignedSgn);
14668
14669 /* ...... "SPN691_DisengageDiffLockRqCR" (36|2, standard signal, unsigned int, little endian) */
14670 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14671 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14672 CAN_Sgn.UnsignedSgn &= 0x00000003;
14673 L4_MABX_B.SFunction1_o13 = ((real_T) CAN_Sgn.UnsignedSgn);
14674
14675 /* ...... "SPN5762_TransLoadRedInhibitRq" (38|2, standard signal, unsigned int, little endian) */
14676 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14677 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14678 CAN_Sgn.UnsignedSgn &= 0x00000003;
14679 L4_MABX_B.SFunction1_o14 = ((real_T) CAN_Sgn.UnsignedSgn);
14680
14681 /* ...... "SPN1852_TransmissionMode1" (40|2, standard signal, unsigned int, little endian) */
14682 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14683 CAN_Sgn.UnsignedSgn &= 0x00000003;
14684 L4_MABX_B.SFunction1_o15 = ((real_T) CAN_Sgn.UnsignedSgn);
14685
14686 /* ...... "SPN1853_TransmissionMode2" (42|2, standard signal, unsigned int, little endian) */
14687 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14688 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14689 CAN_Sgn.UnsignedSgn &= 0x00000003;
14690 L4_MABX_B.SFunction1_o16 = ((real_T) CAN_Sgn.UnsignedSgn);
14691
14692 /* ...... "SPN1854_TransmissionMode3" (44|2, standard signal, unsigned int, little endian) */
14693 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14694 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14695 CAN_Sgn.UnsignedSgn &= 0x00000003;
14696 L4_MABX_B.SFunction1_o17 = ((real_T) CAN_Sgn.UnsignedSgn);
14697
14698 /* ...... "SPN1855_TransmissionMode4" (46|2, standard signal, unsigned int, little endian) */
14699 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
14700 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14701 CAN_Sgn.UnsignedSgn &= 0x00000003;
14702 L4_MABX_B.SFunction1_o18 = ((real_T) CAN_Sgn.UnsignedSgn);
14703
14704 /* ...... "SPN7695_TransAutoNeutralRequest" (48|2, standard signal, unsigned int, little endian) */
14705 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
14706 CAN_Sgn.UnsignedSgn &= 0x00000003;
14707 L4_MABX_B.SFunction1_o19 = ((real_T) CAN_Sgn.UnsignedSgn);
14708
14709 /* ...... "SPN4255_TransRequestedLaunchGear" (50|4, standard signal, unsigned int, little endian) */
14710 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
14711 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14712 CAN_Sgn.UnsignedSgn &= 0x0000000F;
14713 L4_MABX_B.SFunction1_o20 = ((real_T) CAN_Sgn.UnsignedSgn);
14714
14715 /* ...... "SPN2985_TransShiftSelDispModeSw" (54|2, standard signal, unsigned int, little endian) */
14716 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
14717 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14718 CAN_Sgn.UnsignedSgn &= 0x00000003;
14719 L4_MABX_B.SFunction1_o21 = ((real_T) CAN_Sgn.UnsignedSgn);
14720
14721 /* ...... "SPN4246_TransmissionMode5" (56|2, standard signal, unsigned int, little endian) */
14722 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14723 CAN_Sgn.UnsignedSgn &= 0x00000003;
14724 L4_MABX_B.SFunction1_o22 = ((real_T) CAN_Sgn.UnsignedSgn);
14725
14726 /* ...... "SPN4247_TransmissionMode6" (58|2, standard signal, unsigned int, little endian) */
14727 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14728 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
14729 CAN_Sgn.UnsignedSgn &= 0x00000003;
14730 L4_MABX_B.SFunction1_o23 = ((real_T) CAN_Sgn.UnsignedSgn);
14731
14732 /* ...... "SPN4248_TransmissionMode7" (60|2, standard signal, unsigned int, little endian) */
14733 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14734 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
14735 CAN_Sgn.UnsignedSgn &= 0x00000003;
14736 L4_MABX_B.SFunction1_o24 = ((real_T) CAN_Sgn.UnsignedSgn);
14737
14738 /* ...... "SPN4249_TransmissionMode8" (62|2, standard signal, unsigned int, little endian) */
14739 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
14740 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
14741 CAN_Sgn.UnsignedSgn &= 0x00000003;
14742 L4_MABX_B.SFunction1_o25 = ((real_T) CAN_Sgn.UnsignedSgn);
14743 }
14744 }
14745 } else {
14746 /* set RX status to 0 because no new message has arrived */
14747 L4_MABX_B.SFunction1_o26 = 0.0;
14748 }
14749 }
14750 }
14751
14752 /* End of Constant: '<S441>/Constant' */
14753 /* End of Outputs for SubSystem: '<S626>/TC1_03_05' */
14754
14755 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_50ms' */
14756
14757 /* RateTransition: '<S1020>/TmpRTBAtCCVS1_E3Inport1' */
14758 if (L4_MABX_M->Timing.RateInteraction.TID0_2 == 1) {
14759 L4_MABX_B.TwoSpeedAxleSwitch = L4_MABX_B.SFunction1_o1_g3;
14760 L4_MABX_B.ParkingBrakeSwitch = L4_MABX_B.SFunction1_o2_l2;
14761 L4_MABX_B.CruiseCtrlPauseSwitch = L4_MABX_B.SFunction1_o3_gw;
14762 L4_MABX_B.ParkBrakeReleaseInhibitRq = L4_MABX_B.SFunction1_o4_nw;
14763 L4_MABX_B.WheelBasedVehicleSpeed_g = WheelBasedVehicleSpeed;
14764 L4_MABX_B.CruiseCtrlActive = L4_MABX_B.SFunction1_o6_fi;
14765 L4_MABX_B.CruiseCtrlEnableSwitch_k = L4_MABX_B.SFunction1_o7_ng;
14766 L4_MABX_B.BrakeSwitch_e = BrakeSwitch;
14767 L4_MABX_B.ClutchSwitch = L4_MABX_B.SFunction1_o9_f0;
14768 L4_MABX_B.CruiseCtrlSetSwitch = L4_MABX_B.SFunction1_o10_em;
14769 L4_MABX_B.CruiseCtrlCoastSwitch = L4_MABX_B.SFunction1_o11_gw;
14770 L4_MABX_B.CruiseCtrlResumeSwitch = L4_MABX_B.SFunction1_o12_j;
14771 L4_MABX_B.CruiseCtrlAccelerateSwitch = L4_MABX_B.SFunction1_o13_o;
14772 L4_MABX_B.CruiseCtrlSetSpeed = L4_MABX_B.SFunction1_o14_nw;
14773 L4_MABX_B.PTOGovernorState = L4_MABX_B.SFunction1_o15_h;
14774 L4_MABX_B.CruiseCtrlStates = L4_MABX_B.SFunction1_o16_g;
14775 L4_MABX_B.EngIdleIncrementSwitch = L4_MABX_B.SFunction1_o17_f;
14776 L4_MABX_B.EngIdleDecrementSwitch = L4_MABX_B.SFunction1_o18_d;
14777 L4_MABX_B.EngTestModeSwitch = L4_MABX_B.SFunction1_o19_m;
14778 L4_MABX_B.EngShutdownOverrideSwitch = L4_MABX_B.SFunction1_o20_lk;
14779 L4_MABX_B.SPN681_TransGearShiftInhibitReq = L4_MABX_B.SFunction1_o1_ln;
14780 L4_MABX_B.SPN682_TransTrqConvLockupDisReq = L4_MABX_B.SFunction1_o2_cu;
14781 L4_MABX_B.SPN683_DisengageDrivelineReq = L4_MABX_B.SFunction1_o3_ck;
14782 L4_MABX_B.SPN4242_TransRevGearShiftInhibR = L4_MABX_B.SFunction1_o4_mjq;
14783 L4_MABX_B.SPN684_RequestedPercClutchSlip = L4_MABX_B.SFunction1_o5_ma;
14784 L4_MABX_B.SPN525_TransRequestedGear = L4_MABX_B.SFunction1_o6_n;
14785 L4_MABX_B.SPN685_DisengageDiffLockRqFrAx1 = L4_MABX_B.SFunction1_o7_gi;
14786 L4_MABX_B.SPN686_DisengageDiffLockRqFrAx2 = L4_MABX_B.SFunction1_o8_k;
14787 L4_MABX_B.SPN687_DisengageDiffLockRqRrAx1 = L4_MABX_B.SFunction1_o9_o;
14788 L4_MABX_B.SPN688_DisengageDiffLockRqRrAx2 = L4_MABX_B.SFunction1_o10_f;
14789 L4_MABX_B.SPN689_DisengageDiffLockRqC = L4_MABX_B.SFunction1_o11;
14790 L4_MABX_B.SPN690_DisengageDiffLockRqCF = L4_MABX_B.SFunction1_o12;
14791 L4_MABX_B.SPN691_DisengageDiffLockRqCR = L4_MABX_B.SFunction1_o13;
14792 L4_MABX_B.SPN5762_TransLoadRedInhibitRq = L4_MABX_B.SFunction1_o14;
14793 L4_MABX_B.SPN1852_TransmissionMode1 = L4_MABX_B.SFunction1_o15;
14794 L4_MABX_B.SPN1853_TransmissionMode2 = L4_MABX_B.SFunction1_o16;
14795 L4_MABX_B.SPN1854_TransmissionMode3 = L4_MABX_B.SFunction1_o17;
14796 L4_MABX_B.SPN1855_TransmissionMode4 = L4_MABX_B.SFunction1_o18;
14797 L4_MABX_B.SPN7695_TransAutoNeutralRequest = L4_MABX_B.SFunction1_o19;
14798 L4_MABX_B.SPN4255_TransRequestedLaunchGea = L4_MABX_B.SFunction1_o20;
14799 L4_MABX_B.SPN2985_TransShiftSelDispModeSw = L4_MABX_B.SFunction1_o21;
14800 L4_MABX_B.SPN4246_TransmissionMode5 = L4_MABX_B.SFunction1_o22;
14801 L4_MABX_B.SPN4247_TransmissionMode6 = L4_MABX_B.SFunction1_o23;
14802 L4_MABX_B.SPN4248_TransmissionMode7 = L4_MABX_B.SFunction1_o24;
14803 L4_MABX_B.SPN4249_TransmissionMode8 = L4_MABX_B.SFunction1_o25;
14804 }
14805
14806 /* End of Outputs for SubSystem: '<S815>/CAN_TX_50ms' */
14807
14808 /* Outputs for Enabled SubSystem: '<S624>/SystemTime_01' incorporates:
14809 * EnablePort: '<S625>/Enable'
14810 */
14811 /* Constant: '<S440>/Constant' */
14812 if (L4_MABX_P.Constant_Value_dey > 0.0) {
14813 /* S-Function (rti_commonblock): '<S625>/S-Function1' */
14814 /* This comment workarounds a code generation problem */
14815
14816 /* dSPACE RTICAN RX Message Block: "SystemTime_01" Id:233836544 */
14817 {
14818 UInt32 *CAN_Msg;
14819 static dsfloat time_old = 0.0;
14820
14821 /* Read status and timestamp info (previous message) */
14822 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].timestamp !=
14823 time_old) {
14824 /* ... save timestamp info for the calculation of the RX status
14825 during the consecutive sample hit*/
14826 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].
14827 timestamp;
14828
14829 /* ... set the processed flag to one */
14830 L4_MABX_B.SFunction1_o5_f = 1.0;
14831 L4_MABX_B.SFunction1_o6_i = (real_T)
14832 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].timestamp;
14833 L4_MABX_B.SFunction1_o7_d = (real_T)
14834 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].deltatime;
14835 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0xDF01000].data;
14836
14837 /* Decode CAN message */
14838 {
14839 {
14840 rtican_Signal_t CAN_Sgn;
14841
14842 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
14843 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
14844 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14845 L4_MABX_B.SFunction1_o1_j4 = ((real_T) CAN_Sgn.UnsignedSgn);
14846
14847 /* ...... "Source" (8|4, standard signal, unsigned int, little endian) */
14848 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
14849 CAN_Sgn.UnsignedSgn &= 0x0000000F;
14850 L4_MABX_B.SFunction1_o2_gh = ((real_T) CAN_Sgn.UnsignedSgn);
14851
14852 /* ...... "Date" (16|16, standard signal, unsigned int, little endian) */
14853 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
14854 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
14855 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14856 L4_MABX_B.SFunction1_o3_kg = ((real_T) CAN_Sgn.UnsignedSgn);
14857
14858 /* ...... "Time" (32|32, standard signal, unsigned int, little endian) */
14859 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
14860 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
14861 CAN_Sgn.SgnBytes.Byte2 = CAN_Msg[6];
14862 CAN_Sgn.SgnBytes.Byte3 = CAN_Msg[7];
14863 L4_MABX_B.SFunction1_o4_cb = 0.0001 * ( ((real_T)
14864 CAN_Sgn.UnsignedSgn) );
14865 }
14866 }
14867 } else {
14868 /* set RX status to 0 because no new message has arrived */
14869 L4_MABX_B.SFunction1_o5_f = 0.0;
14870 }
14871 }
14872 }
14873
14874 /* End of Constant: '<S440>/Constant' */
14875 /* End of Outputs for SubSystem: '<S624>/SystemTime_01' */
14876
14877 /* DataTypeConversion: '<S624>/Data Type Conversion8' */
14878 L4_MABX_B.RX_status_i = (L4_MABX_B.SFunction1_o5_f != 0.0);
14879
14880 /* Logic: '<S1034>/Operator' incorporates:
14881 * Constant: '<S1032>/Constant'
14882 */
14883 L4_MABX_B.Operator_l0 = (L4_MABX_P.Constant_Value_lx && L4_MABX_B.RX_status_i);
14884
14885 /* DataTypeConversion: '<S1034>/DataType' */
14886 L4_MABX_B.DataType_p3 = L4_MABX_B.Operator_l0;
14887
14888 /* Outputs for Enabled SubSystem: '<S1033>/Std_SystemTime_01' incorporates:
14889 * EnablePort: '<S1035>/Enable'
14890 */
14891 if (L4_MABX_B.DataType_p3) {
14892 /* S-Function (rti_commonblock): '<S1035>/S-Function1' incorporates:
14893 * Constant: '<S1033>/Constant'
14894 * Constant: '<S1033>/Constant1'
14895 */
14896 /* This comment workarounds a code generation problem */
14897
14898 /* dSPACE RTICAN TX Message Block: "Std_SystemTime_01" Id:5 */
14899 {
14900 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
14901 0x00 };
14902
14903 Float32 delayTime = 0.0;
14904
14905 /* link this pointer to CAN_Msg for use in initialize_io_units() */
14906 CANTP1_PTR_M3_C2_STD_0x5 = &(CAN_Msg[0]);
14907
14908 /* ... perform loop-back if required */
14909 if (L4_MABX_P.Constant1_Value_pl > 0.5) {
14910 /* ... updating the used tx-clientbuffer */
14911 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_STD_0X5->module,
14912 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->queue );
14913
14914 /* ... Read status and timestamp info perform loop-back (previous message) */
14915 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_STD_0X5,
14916 8, // datalen
14917 &(CAN_Msg[0]),
14918 CANTP1_RX_SPMSG_M3_C2_STD);
14919
14920 /* Convert timestamp */
14921 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->processed) {
14922 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp =
14923 rtk_dsts_time_to_simtime_convert
14924 (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp);
14925 }
14926 } else {
14927 /* ... Read status and timestamp info (previous message) */
14928 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_STD_0X5);
14929
14930 /* Convert timestamp */
14931 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->processed) {
14932 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp =
14933 rtk_dsts_time_to_simtime_convert
14934 (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp);
14935 }
14936 }
14937
14938 /* Messages with timestamp zero have been received in pause/stop state
14939 and must not be handled.
14940 */
14941 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp > 0.0) {
14942 L4_MABX_B.SFunction1_o1_b = (real_T)
14943 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->processed;
14944 L4_MABX_B.SFunction1_o2_p = (real_T)
14945 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->timestamp;
14946 L4_MABX_B.SFunction1_o3 = (real_T)
14947 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->deltatime;
14948 L4_MABX_B.SFunction1_o4 = (real_T)
14949 CANTP1_TX_M3_C2_MCRCLT_STD_0X5->delaytime;
14950 }
14951
14952 /* ... Encode Simulink signals of TX and RM blocks*/
14953 {
14954 rtican_Signal_t CAN_Sgn;
14955 UInt32 i;
14956
14957 /* Initialize the static message data to zero */
14958 for (i=0; i<8; i++ )
14959 CAN_Msg[i] = 0;
14960
14961 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
14962 /* Add or substract 0.5 in order to round to nearest integer */
14963 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o1_j4 ) + 0.5);
14964 CAN_Sgn.UnsignedSgn &= 0x000000FF;
14965 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
14966
14967 /* ...... "Source" (8|4, standard signal, unsigned int, little endian) */
14968 /* Add or substract 0.5 in order to round to nearest integer */
14969 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o2_gh ) + 0.5);
14970 CAN_Sgn.UnsignedSgn &= 0x0000000F;
14971 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
14972
14973 /* ...... "Date" (16|16, standard signal, unsigned int, little endian) */
14974 /* Add or substract 0.5 in order to round to nearest integer */
14975 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o3_kg ) + 0.5);
14976 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
14977 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
14978 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
14979
14980 /* ...... "Time" (32|32, standard signal, unsigned int, little endian) */
14981 /* Add or substract 0.5 in order to round to nearest integer */
14982 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SFunction1_o4_cb - ( 0 ) ) /
14983 0.0001 + 0.5);
14984 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
14985 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
14986 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte2;
14987 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte3;
14988 }
14989
14990 delayTime = (Float32) L4_MABX_P.Constant_Value_np / (2000);
14991
14992 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
14993 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X5], 8, &(CAN_Msg[0]),
14994 delayTime);
14995 }
14996 }
14997
14998 /* End of Outputs for SubSystem: '<S1033>/Std_SystemTime_01' */
14999
15000 /* Constant: '<S1024>/Byte1' */
15001 L4_MABX_B.VectorConcatenate[0] = L4_MABX_P.Byte1_Value_c;
15002
15003 /* Constant: '<S1024>/Byte2' */
15004 L4_MABX_B.VectorConcatenate[1] = L4_MABX_P.Byte2_Value_m;
15005
15006 /* Constant: '<S1024>/Byte3' */
15007 L4_MABX_B.VectorConcatenate[2] = L4_MABX_P.Byte3_Value_g;
15008
15009 /* Constant: '<S1024>/Byte4' */
15010 L4_MABX_B.VectorConcatenate[3] = L4_MABX_P.Byte4_Value_k;
15011
15012 /* Constant: '<S1024>/Byte5' */
15013 L4_MABX_B.VectorConcatenate[4] = L4_MABX_P.Byte5_Value_i;
15014
15015 /* Constant: '<S1024>/Byte6' */
15016 L4_MABX_B.VectorConcatenate[5] = L4_MABX_P.Byte6_Value_o;
15017
15018 /* Constant: '<S1024>/Byte7' */
15019 L4_MABX_B.VectorConcatenate[6] = L4_MABX_P.Byte7_Value_d;
15020
15021 /* Constant: '<S1024>/Byte8' */
15022 L4_MABX_B.VectorConcatenate[7] = L4_MABX_P.Byte8_Value_jk;
15023
15024 /* DataTypeConversion: '<S1028>/Data Type Conversion' */
15025 for (i = 0; i < 8; i++) {
15026 L4_MABX_B.DataTypeConversion[i] = L4_MABX_B.VectorConcatenate[i];
15027 }
15028
15029 /* End of DataTypeConversion: '<S1028>/Data Type Conversion' */
15030
15031 /* UnitDelay: '<S825>/Unit Delay2' */
15032 L4_MABX_B.UnitDelay2 = L4_MABX_DW.UnitDelay2_DSTATE;
15033
15034 /* Outputs for Triggered SubSystem: '<S1028>/CAN_TYPE1_TX_M1_C1' incorporates:
15035 * TriggerPort: '<S1030>/Trigger'
15036 */
15037 zcEvent = (L4_MABX_B.UnitDelay2 &&
15038 (L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE_i != POS_ZCSIG));
15039 if (zcEvent) {
15040 /* S-Function (rti_commonblock): '<S1030>/S-Function1' */
15041 /* This comment workarounds a code generation problem */
15042
15043 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418184965 */
15044 {
15045 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
15046
15047 Float32 delayTime = 0.0;
15048
15049 /* ... Read status and timestamp info (previous message) */
15050 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]);
15051
15052 /* Convert timestamp */
15053 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->processed) {
15054 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp =
15055 rtk_dsts_time_to_simtime_convert
15056 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp);
15057 }
15058
15059 /* Messages with timestamp zero have been received in pause/stop state
15060 and must not be handled.
15061 */
15062 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp > 0.0) {
15063 L4_MABX_B.SFunction1_o1_e = (real_T)
15064 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->processed;
15065 L4_MABX_B.SFunction1_o2_o = (real_T)
15066 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->timestamp;
15067 L4_MABX_B.SFunction1_o3_g = (real_T)
15068 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->deltatime;
15069 L4_MABX_B.SFunction1_o4_c = (real_T)
15070 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05]->delaytime;
15071 }
15072
15073 /* ... Encode Simulink signals of TX and RM blocks*/
15074 {
15075 rtican_Signal_t CAN_Sgn;
15076
15077 /* ...... "Byte1" (0|8, standard signal, unsigned int, little endian) */
15078 /* Add or substract 0.5 in order to round to nearest integer */
15079 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[0] ) +
15080 0.5);
15081 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15082 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
15083
15084 /* ...... "Byte2" (8|8, standard signal, unsigned int, little endian) */
15085 /* Add or substract 0.5 in order to round to nearest integer */
15086 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[1] ) +
15087 0.5);
15088 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15089 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
15090
15091 /* ...... "Byte3" (16|8, standard signal, unsigned int, little endian) */
15092 /* Add or substract 0.5 in order to round to nearest integer */
15093 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[2] ) +
15094 0.5);
15095 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15096 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
15097
15098 /* ...... "Byte4" (24|8, standard signal, unsigned int, little endian) */
15099 /* Add or substract 0.5 in order to round to nearest integer */
15100 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[3] ) +
15101 0.5);
15102 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15103 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
15104
15105 /* ...... "Byte5" (32|8, standard signal, unsigned int, little endian) */
15106 /* Add or substract 0.5 in order to round to nearest integer */
15107 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[4] ) +
15108 0.5);
15109 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15110 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
15111
15112 /* ...... "Byte6" (40|8, standard signal, unsigned int, little endian) */
15113 /* Add or substract 0.5 in order to round to nearest integer */
15114 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[5] ) +
15115 0.5);
15116 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15117 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
15118
15119 /* ...... "Byte7" (48|8, standard signal, unsigned int, little endian) */
15120 /* Add or substract 0.5 in order to round to nearest integer */
15121 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[6] ) +
15122 0.5);
15123 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15124 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
15125
15126 /* ...... "Byte8" (56|8, standard signal, unsigned int, little endian) */
15127 /* Add or substract 0.5 in order to round to nearest integer */
15128 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion[7] ) +
15129 0.5);
15130 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15131 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
15132 }
15133
15134 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
15135 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05], 8,
15136 &(CAN_Msg[0]), delayTime);
15137 }
15138 }
15139
15140 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE_i = L4_MABX_B.UnitDelay2;
15141
15142 /* End of Outputs for SubSystem: '<S1028>/CAN_TYPE1_TX_M1_C1' */
15143
15144 /* UnitDelay: '<S825>/Unit Delay1' */
15145 L4_MABX_B.UnitDelay1_e2 = L4_MABX_DW.UnitDelay1_DSTATE_o;
15146
15147 /* MultiPortSwitch: '<S825>/Multiport Switch' incorporates:
15148 * Constant: '<S1026>/Byte1'
15149 * Constant: '<S1026>/Byte2'
15150 * Constant: '<S1026>/Byte3'
15151 * Constant: '<S1026>/Byte4'
15152 * Constant: '<S1026>/Byte5'
15153 * Constant: '<S1026>/Byte6'
15154 * Constant: '<S1026>/Byte7'
15155 * Constant: '<S1026>/Byte8'
15156 * Constant: '<S1027>/Byte1'
15157 * Constant: '<S1027>/Byte2'
15158 * Constant: '<S1027>/Byte3'
15159 * Constant: '<S1027>/Byte4'
15160 * Constant: '<S1027>/Byte5'
15161 * Constant: '<S1027>/Byte6'
15162 * Constant: '<S1027>/Byte7'
15163 * Constant: '<S1027>/Byte8'
15164 */
15165 if (L4_MABX_B.UnitDelay1_e2 == 1) {
15166 L4_MABX_B.VectorConcatenate_g[7] = L4_MABX_P.Byte8_Value_j;
15167 L4_MABX_B.VectorConcatenate_g[6] = L4_MABX_P.Byte7_Value_g;
15168 L4_MABX_B.VectorConcatenate_g[5] = L4_MABX_P.Byte6_Value_m;
15169 L4_MABX_B.VectorConcatenate_g[4] = L4_MABX_P.Byte5_Value_k;
15170 L4_MABX_B.VectorConcatenate_g[3] = L4_MABX_P.Byte4_Value_c;
15171 L4_MABX_B.VectorConcatenate_g[2] = L4_MABX_P.Byte3_Value_p;
15172 L4_MABX_B.VectorConcatenate_g[1] = L4_MABX_P.Byte2_Value_b;
15173 L4_MABX_B.VectorConcatenate_g[0] = L4_MABX_P.Byte1_Value_m;
15174 for (i = 0; i < 8; i++) {
15175 L4_MABX_B.MultiportSwitch_fi[i] = L4_MABX_B.VectorConcatenate_g[i];
15176 }
15177 } else {
15178 L4_MABX_B.VectorConcatenate_e[7] = L4_MABX_P.Byte8_Value;
15179 L4_MABX_B.VectorConcatenate_e[6] = L4_MABX_P.Byte7_Value;
15180 L4_MABX_B.VectorConcatenate_e[5] = L4_MABX_P.Byte6_Value;
15181 L4_MABX_B.VectorConcatenate_e[4] = L4_MABX_P.Byte5_Value;
15182 L4_MABX_B.VectorConcatenate_e[3] = L4_MABX_P.Byte4_Value;
15183 L4_MABX_B.VectorConcatenate_e[2] = L4_MABX_P.Byte3_Value;
15184 L4_MABX_B.VectorConcatenate_e[1] = L4_MABX_P.Byte2_Value;
15185 L4_MABX_B.VectorConcatenate_e[0] = L4_MABX_P.Byte1_Value;
15186 for (i = 0; i < 8; i++) {
15187 L4_MABX_B.MultiportSwitch_fi[i] = L4_MABX_B.VectorConcatenate_e[i];
15188 }
15189 }
15190
15191 /* End of MultiPortSwitch: '<S825>/Multiport Switch' */
15192
15193 /* DataTypeConversion: '<S1029>/Data Type Conversion' */
15194 for (i = 0; i < 8; i++) {
15195 L4_MABX_B.DataTypeConversion_b[i] = L4_MABX_B.MultiportSwitch_fi[i];
15196 }
15197
15198 /* End of DataTypeConversion: '<S1029>/Data Type Conversion' */
15199
15200 /* UnitDelay: '<S825>/Unit Delay3' */
15201 L4_MABX_B.UnitDelay3 = L4_MABX_DW.UnitDelay3_DSTATE;
15202
15203 /* Outputs for Triggered SubSystem: '<S1029>/CAN_TYPE1_TX_M1_C1' incorporates:
15204 * TriggerPort: '<S1031>/Trigger'
15205 */
15206 zcEvent = (L4_MABX_B.UnitDelay3 &&
15207 (L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE != POS_ZCSIG));
15208 if (zcEvent) {
15209 /* S-Function (rti_commonblock): '<S1031>/S-Function1' */
15210 /* This comment workarounds a code generation problem */
15211
15212 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418119429 */
15213 {
15214 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
15215
15216 Float32 delayTime = 0.0;
15217
15218 /* ... Read status and timestamp info (previous message) */
15219 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]);
15220
15221 /* Convert timestamp */
15222 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->processed) {
15223 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp =
15224 rtk_dsts_time_to_simtime_convert
15225 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp);
15226 }
15227
15228 /* Messages with timestamp zero have been received in pause/stop state
15229 and must not be handled.
15230 */
15231 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp > 0.0) {
15232 L4_MABX_B.SFunction1_o1_f = (real_T)
15233 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->processed;
15234 L4_MABX_B.SFunction1_o2_d = (real_T)
15235 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->timestamp;
15236 L4_MABX_B.SFunction1_o3_c = (real_T)
15237 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->deltatime;
15238 L4_MABX_B.SFunction1_o4_p = (real_T)
15239 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05]->delaytime;
15240 }
15241
15242 /* ... Encode Simulink signals of TX and RM blocks*/
15243 {
15244 rtican_Signal_t CAN_Sgn;
15245
15246 /* ...... "Byte1" (0|8, standard signal, unsigned int, little endian) */
15247 /* Add or substract 0.5 in order to round to nearest integer */
15248 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_b[0] ) +
15249 0.5);
15250 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15251 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
15252
15253 /* ...... "Byte2" (8|8, standard signal, unsigned int, little endian) */
15254 /* Add or substract 0.5 in order to round to nearest integer */
15255 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_b[1] ) +
15256 0.5);
15257 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15258 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
15259
15260 /* ...... "Byte3" (16|8, standard signal, unsigned int, little endian) */
15261 /* Add or substract 0.5 in order to round to nearest integer */
15262 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_b[2] ) +
15263 0.5);
15264 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15265 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
15266
15267 /* ...... "Byte4" (24|8, standard signal, unsigned int, little endian) */
15268 /* Add or substract 0.5 in order to round to nearest integer */
15269 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_b[3] ) +
15270 0.5);
15271 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15272 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
15273
15274 /* ...... "Byte5" (32|8, standard signal, unsigned int, little endian) */
15275 /* Add or substract 0.5 in order to round to nearest integer */
15276 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_b[4] ) +
15277 0.5);
15278 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15279 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
15280
15281 /* ...... "Byte6" (40|8, standard signal, unsigned int, little endian) */
15282 /* Add or substract 0.5 in order to round to nearest integer */
15283 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_b[5] ) +
15284 0.5);
15285 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15286 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
15287
15288 /* ...... "Byte7" (48|8, standard signal, unsigned int, little endian) */
15289 /* Add or substract 0.5 in order to round to nearest integer */
15290 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_b[6] ) +
15291 0.5);
15292 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15293 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
15294
15295 /* ...... "Byte8" (56|8, standard signal, unsigned int, little endian) */
15296 /* Add or substract 0.5 in order to round to nearest integer */
15297 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_b[7] ) +
15298 0.5);
15299 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15300 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
15301 }
15302
15303 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
15304 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05], 8,
15305 &(CAN_Msg[0]), delayTime);
15306 }
15307 }
15308
15309 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE = L4_MABX_B.UnitDelay3;
15310
15311 /* End of Outputs for SubSystem: '<S1029>/CAN_TYPE1_TX_M1_C1' */
15312
15313 /* Chart: '<S825>/Chart' incorporates:
15314 * Constant: '<S825>/Constant1'
15315 */
15316 if (L4_MABX_DW.temporalCounter_i1_f < 255U) {
15317 L4_MABX_DW.temporalCounter_i1_f++;
15318 }
15319
15320 /* Gateway: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15321 /* During: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15322 if (L4_MABX_DW.is_active_c4_SUB_ECU_L4_MABX_HW == 0U) {
15323 /* Entry: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15324 L4_MABX_DW.is_active_c4_SUB_ECU_L4_MABX_HW = 1U;
15325
15326 /* Entry Internal: OUTPUTS_PIC_KW/CAN_Out_PIC_KW/CAN_TX_BAM/Chart */
15327 /* Transition: '<S1025>:4' */
15328 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_Init_n;
15329
15330 /* Entry 'Init': '<S1025>:1' */
15331 L4_MABX_B.State = 0U;
15332 L4_MABX_B.enTPCM = false;
15333 L4_MABX_B.enTPDT = false;
15334 L4_MABX_B.TPCM_ts_Prev = L4_MABX_B.SFunction1_o2_o;
15335 L4_MABX_B.TPDT_ts_Prev = L4_MABX_B.SFunction1_o2_d;
15336 L4_MABX_B.TPDT_count = 0U;
15337 } else {
15338 switch (L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf) {
15339 case L4_MABX_IN_CheckPacketCount:
15340 L4_MABX_B.State = 6U;
15341
15342 /* During 'CheckPacketCount': '<S1025>:11' */
15343 if (L4_MABX_B.TPDT_count <= L4_MABX_P.Constant1_Value_g3) {
15344 /* Transition: '<S1025>:18' */
15345 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SendTPDT;
15346 L4_MABX_DW.temporalCounter_i1_f = 0U;
15347
15348 /* Entry 'SendTPDT': '<S1025>:6' */
15349 L4_MABX_B.State = 4U;
15350 L4_MABX_B.enTPDT = true;
15351 } else {
15352 /* Transition: '<S1025>:19' */
15353 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf =
15354 L4_MABX_IN_WaitForNextPeriod;
15355 L4_MABX_DW.temporalCounter_i1_f = 0U;
15356
15357 /* Entry 'WaitForNextPeriod': '<S1025>:17' */
15358 L4_MABX_B.State = 7U;
15359 }
15360 break;
15361
15362 case L4_MABX_IN_Init_n:
15363 /* During 'Init': '<S1025>:1' */
15364 /* Transition: '<S1025>:9' */
15365 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_StartMsg;
15366
15367 /* Entry 'StartMsg': '<S1025>:30' */
15368 L4_MABX_B.State = 1U;
15369 L4_MABX_B.TPDT_count = 1U;
15370 break;
15371
15372 case L4_MABX_IN_InterframeDelay:
15373 L4_MABX_B.State = 3U;
15374
15375 /* During 'InterframeDelay': '<S1025>:7' */
15376 if (L4_MABX_DW.temporalCounter_i1_f >= 5U) {
15377 /* Transition: '<S1025>:10' */
15378 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SendTPDT;
15379 L4_MABX_DW.temporalCounter_i1_f = 0U;
15380
15381 /* Entry 'SendTPDT': '<S1025>:6' */
15382 L4_MABX_B.State = 4U;
15383 L4_MABX_B.enTPDT = true;
15384 }
15385 break;
15386
15387 case L4_MABX_IN_InterframeDelay1:
15388 L4_MABX_B.State = 5U;
15389
15390 /* During 'InterframeDelay1': '<S1025>:12' */
15391 if (L4_MABX_DW.temporalCounter_i1_f >= 5U) {
15392 /* Transition: '<S1025>:14' */
15393 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_CheckPacketCount;
15394
15395 /* Entry 'CheckPacketCount': '<S1025>:11' */
15396 L4_MABX_B.State = 6U;
15397 i = (int32_T)(L4_MABX_B.TPDT_count + 1U);
15398 if ((uint32_T)i > 255U) {
15399 i = 255;
15400 }
15401
15402 L4_MABX_B.TPDT_count = (uint8_T)i;
15403 }
15404 break;
15405
15406 case L4_MABX_IN_SendTPCM:
15407 L4_MABX_B.State = 2U;
15408
15409 /* During 'SendTPCM': '<S1025>:5' */
15410 if (L4_MABX_DW.temporalCounter_i1_f >= 1U) {
15411 /* Transition: '<S1025>:8' */
15412 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_InterframeDelay;
15413 L4_MABX_DW.temporalCounter_i1_f = 0U;
15414
15415 /* Entry 'InterframeDelay': '<S1025>:7' */
15416 L4_MABX_B.State = 3U;
15417 L4_MABX_B.enTPCM = false;
15418 L4_MABX_B.TPCM_ts_Prev = L4_MABX_B.SFunction1_o2_o;
15419 }
15420 break;
15421
15422 case L4_MABX_IN_SendTPDT:
15423 L4_MABX_B.State = 4U;
15424
15425 /* During 'SendTPDT': '<S1025>:6' */
15426 if (L4_MABX_DW.temporalCounter_i1_f >= 1U) {
15427 /* Transition: '<S1025>:13' */
15428 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_InterframeDelay1;
15429 L4_MABX_DW.temporalCounter_i1_f = 0U;
15430
15431 /* Entry 'InterframeDelay1': '<S1025>:12' */
15432 L4_MABX_B.State = 5U;
15433 L4_MABX_B.enTPDT = false;
15434 L4_MABX_B.TPDT_ts_Prev = L4_MABX_B.SFunction1_o2_d;
15435 }
15436 break;
15437
15438 case L4_MABX_IN_StartMsg:
15439 /* During 'StartMsg': '<S1025>:30' */
15440 /* Transition: '<S1025>:31' */
15441 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_SendTPCM;
15442 L4_MABX_DW.temporalCounter_i1_f = 0U;
15443
15444 /* Entry 'SendTPCM': '<S1025>:5' */
15445 L4_MABX_B.State = 2U;
15446 L4_MABX_B.enTPCM = true;
15447 break;
15448
15449 default:
15450 L4_MABX_B.State = 7U;
15451
15452 /* During 'WaitForNextPeriod': '<S1025>:17' */
15453 if (L4_MABX_DW.temporalCounter_i1_f >= 185U) {
15454 /* Transition: '<S1025>:20' */
15455 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_StartMsg;
15456
15457 /* Entry 'StartMsg': '<S1025>:30' */
15458 L4_MABX_B.State = 1U;
15459 L4_MABX_B.TPDT_count = 1U;
15460 }
15461 break;
15462 }
15463 }
15464
15465 /* End of Chart: '<S825>/Chart' */
15466
15467 /* RelationalOperator: '<S1053>/Operator' incorporates:
15468 * Constant: '<S1044>/Constant2'
15469 */
15470 L4_MABX_B.Operator_o2 = (L4_MABX_P.Constant2_Value_ol == MABX_Mode);
15471
15472 /* Logic: '<S1044>/Logical Operator2' */
15473 L4_MABX_B.LogicalOperator2_m = !L4_MABX_B.Operator_o2;
15474
15475 /* S-Function (rti_commonblock): '<S1036>/S-Function1' */
15476 /* This comment workarounds a code generation problem */
15477
15478 /* write output state value to digital output channel 4 on port 1 */
15479 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH4, (UInt16)
15480 (L4_MABX_B.LogicalOperator2_m << 3));
15481
15482 /* RateTransition: '<S1044>/TmpRTBAtANDInport1' */
15483 if (L4_MABX_M->Timing.RateInteraction.TID0_3 == 1) {
15484 L4_MABX_B.TmpRTBAtANDInport1 = L4_MABX_DW.TmpRTBAtANDInport1_Buffer0;
15485 }
15486
15487 /* End of RateTransition: '<S1044>/TmpRTBAtANDInport1' */
15488
15489 /* Logic: '<S1044>/AND' */
15490 L4_MABX_B.AND = ((L4_MABX_B.TmpRTBAtANDInport1 != 0.0) && AutonomousEnabled);
15491
15492 /* Logic: '<S1044>/OR' */
15493 L4_MABX_B.OR = (AutonomousOutputEnabled || L4_MABX_B.AND);
15494
15495 /* Logic: '<S1044>/Logical Operator4' */
15496 L4_MABX_B.LogicalOperator4_g = !L4_MABX_B.OR;
15497
15498 /* S-Function (rti_commonblock): '<S1037>/S-Function1' */
15499 /* This comment workarounds a code generation problem */
15500
15501 /* write output state value to digital output channel 2 on port 1 */
15502 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH2, (UInt16)
15503 (L4_MABX_B.LogicalOperator4_g << 1));
15504
15505 /* Logic: '<S1044>/Logical Operator1' */
15506 L4_MABX_B.LogicalOperator1_f = !EnableSw;
15507
15508 /* S-Function (rti_commonblock): '<S1038>/S-Function1' */
15509 /* This comment workarounds a code generation problem */
15510
15511 /* write output state value to digital output channel 1 on port 1 */
15512 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH1, (UInt16)
15513 (L4_MABX_B.LogicalOperator1_f << 0));
15514
15515 /* RelationalOperator: '<S1052>/Operator' incorporates:
15516 * Constant: '<S1044>/Constant3'
15517 */
15518 L4_MABX_B.Operator_n3 = (L4_MABX_P.Constant3_Value_hg == SupervisorMode);
15519
15520 /* Logic: '<S1044>/Logical Operator3' */
15521 L4_MABX_B.LogicalOperator3_p = !L4_MABX_B.Operator_n3;
15522
15523 /* S-Function (rti_commonblock): '<S1039>/S-Function1' */
15524 /* This comment workarounds a code generation problem */
15525
15526 /* write output state value to digital output channel 3 on port 1 */
15527 dio_tp4_digout_write(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH3, (UInt16)
15528 (L4_MABX_B.LogicalOperator3_p << 2));
15529
15530 /* Logic: '<S1042>/Logical Operator' */
15531 L4_MABX_B.LogicalOperator_g = !AutonomousOutputEnabled;
15532
15533 /* Outputs for Atomic SubSystem: '<S1042>/If_Then_Else4' */
15534
15535 /* Constant: '<S1042>/APTC_PEDAL_A_PWM_FREQ_HZ_APV' */
15536 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_g,
15537 L4_MABX_B.Pedal_1_pwm_freq_raw_value,
15538 L4_MABX_P.APTC_PEDAL_A_PWM_FREQ_HZ_APV_Va,
15539 &L4_MABX_B.If_Then_Else4);
15540
15541 /* End of Outputs for SubSystem: '<S1042>/If_Then_Else4' */
15542
15543 /* MinMax: '<S816>/MinMax' incorporates:
15544 * Constant: '<S816>/Constant2'
15545 */
15546 DeltaTime = L4_MABX_B.If_Then_Else4.Switch;
15547 PositionFinalLimited = L4_MABX_P.Constant2_Value_pj;
15548 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
15549 PositionFinalLimited = DeltaTime;
15550 }
15551
15552 L4_MABX_B.MinMax_a = PositionFinalLimited;
15553
15554 /* End of MinMax: '<S816>/MinMax' */
15555
15556 /* DataTypeConversion: '<S816>/Data Type Conversion1' */
15557 L4_MABX_B.DataTypeConversion1 = L4_MABX_B.MinMax_a;
15558
15559 /* Product: '<S816>/Divide' incorporates:
15560 * Constant: '<S816>/Constant3'
15561 */
15562 L4_MABX_B.Divide_c = L4_MABX_P.Constant3_Value_pv /
15563 L4_MABX_B.DataTypeConversion1;
15564
15565 /* DataTypeConversion: '<S816>/Data Type Conversion5' */
15566 L4_MABX_B.PWMOut_P2C1_Period = L4_MABX_B.Divide_c;
15567
15568 /* Lookup_n-D: '<S1042>/1-D Lookup Table2' */
15569 L4_MABX_B.PedalPWMA_DC_out = look1_binlcapw(L4_MABX_B.If_Then_Else_fh.Switch,
15570 L4_MABX_P.uDLookupTable2_bp01Data, L4_MABX_P.uDLookupTable2_tableData, 1U);
15571
15572 /* Outputs for Atomic SubSystem: '<S1042>/If_Then_Else1' */
15573 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_g,
15574 L4_MABX_B.Pedal_1_pwm_dc_raw_value,
15575 L4_MABX_B.PedalPWMA_DC_out, &L4_MABX_B.If_Then_Else1_e);
15576
15577 /* End of Outputs for SubSystem: '<S1042>/If_Then_Else1' */
15578
15579 /* Gain: '<S816>/Gain1' */
15580 L4_MABX_B.Gain1_n = L4_MABX_P.Gain1_Gain_k3 * L4_MABX_B.If_Then_Else1_e.Switch;
15581
15582 /* DataTypeConversion: '<S816>/Data Type Conversion6' */
15583 L4_MABX_B.PWMOut_P2C1_DC = L4_MABX_B.Gain1_n;
15584
15585 /* S-Function (rti_commonblock): '<S1040>/S-Function1' */
15586 /* This comment workarounds a code generation problem */
15587
15588 /* write PWM Period and DutyCycle for output channel 1 on port 2 */
15589 dio_tp4_pwm_update(DIO_TP4_1_MODULE_ADDR , 2, 1, (real_T)
15590 L4_MABX_B.PWMOut_P2C1_Period, (real_T)
15591 L4_MABX_B.PWMOut_P2C1_DC);
15592
15593 /* Outputs for Atomic SubSystem: '<S1042>/If_Then_Else5' */
15594
15595 /* Constant: '<S1042>/APTC_PEDAL_B_PWM_FREQ_HZ_APV' */
15596 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_g,
15597 L4_MABX_B.Pedal_2_pwm_freq_raw_value,
15598 L4_MABX_P.APTC_PEDAL_B_PWM_FREQ_HZ_APV_Va,
15599 &L4_MABX_B.If_Then_Else5);
15600
15601 /* End of Outputs for SubSystem: '<S1042>/If_Then_Else5' */
15602
15603 /* MinMax: '<S816>/MinMax1' incorporates:
15604 * Constant: '<S816>/Constant4'
15605 */
15606 DeltaTime = L4_MABX_B.If_Then_Else5.Switch;
15607 PositionFinalLimited = L4_MABX_P.Constant4_Value_l;
15608 if ((DeltaTime > PositionFinalLimited) || rtIsNaN(PositionFinalLimited)) {
15609 PositionFinalLimited = DeltaTime;
15610 }
15611
15612 L4_MABX_B.MinMax1_d = PositionFinalLimited;
15613
15614 /* End of MinMax: '<S816>/MinMax1' */
15615
15616 /* DataTypeConversion: '<S816>/Data Type Conversion2' */
15617 L4_MABX_B.DataTypeConversion2_h = L4_MABX_B.MinMax1_d;
15618
15619 /* Product: '<S816>/Divide1' incorporates:
15620 * Constant: '<S816>/Constant1'
15621 */
15622 L4_MABX_B.Divide1 = L4_MABX_P.Constant1_Value_bk /
15623 L4_MABX_B.DataTypeConversion2_h;
15624
15625 /* DataTypeConversion: '<S816>/Data Type Conversion9' */
15626 L4_MABX_B.PWMOut_P2C2_Period = L4_MABX_B.Divide1;
15627
15628 /* Lookup_n-D: '<S1042>/1-D Lookup Table3' */
15629 L4_MABX_B.PedalPWMB_DC_out = look1_binlcapw(L4_MABX_B.If_Then_Else_fh.Switch,
15630 L4_MABX_P.uDLookupTable3_bp01Data, L4_MABX_P.uDLookupTable3_tableData, 1U);
15631
15632 /* Outputs for Atomic SubSystem: '<S1042>/If_Then_Else2' */
15633 L4_MABX_If_Then_Else(L4_MABX_B.LogicalOperator_g,
15634 L4_MABX_B.Pedal_2_pwm_dc_raw_value,
15635 L4_MABX_B.PedalPWMB_DC_out, &L4_MABX_B.If_Then_Else2_e);
15636
15637 /* End of Outputs for SubSystem: '<S1042>/If_Then_Else2' */
15638
15639 /* Gain: '<S816>/Gain' */
15640 L4_MABX_B.Gain_p = L4_MABX_P.Gain_Gain_pb * L4_MABX_B.If_Then_Else2_e.Switch;
15641
15642 /* DataTypeConversion: '<S816>/Data Type Conversion10' */
15643 L4_MABX_B.PWMOut_P2C2_DC = L4_MABX_B.Gain_p;
15644
15645 /* S-Function (rti_commonblock): '<S1041>/S-Function1' */
15646 /* This comment workarounds a code generation problem */
15647
15648 /* write PWM Period and DutyCycle for output channel 2 on port 2 */
15649 dio_tp4_pwm_update(DIO_TP4_1_MODULE_ADDR , 2, 2, (real_T)
15650 L4_MABX_B.PWMOut_P2C2_Period, (real_T)
15651 L4_MABX_B.PWMOut_P2C2_DC);
15652
15653 /* S-Function (rti_commonblock): '<S723>/S-Function1' */
15654 /* This comment workarounds a code generation problem */
15655
15656 /* Gain: '<S402>/ShifterControlDC' */
15657 L4_MABX_B.ShiftControlDC = L4_MABX_P.ShifterControlDC_Gain *
15658 L4_MABX_B.SFunction1_o2_h;
15659
15660 /* RelationalOperator: '<S1043>/Relational Operator' incorporates:
15661 * Constant: '<S1043>/Constant'
15662 */
15663 L4_MABX_B.RelationalOperator_k = (L4_MABX_B.ShiftControlDC >=
15664 L4_MABX_P.Constant_Value_aw);
15665
15666 /* RelationalOperator: '<S1043>/Relational Operator1' incorporates:
15667 * Constant: '<S1043>/Constant1'
15668 */
15669 L4_MABX_B.RelationalOperator1_f5 = (L4_MABX_B.ShiftControlDC <=
15670 L4_MABX_P.Constant1_Value_gp);
15671
15672 /* Logic: '<S1043>/Logical Operator' */
15673 L4_MABX_B.LogicalOperator_j = (L4_MABX_B.RelationalOperator_k &&
15674 L4_MABX_B.RelationalOperator1_f5);
15675
15676 /* RelationalOperator: '<S1049>/Compare' incorporates:
15677 * Constant: '<S1049>/Constant'
15678 */
15679 L4_MABX_B.Compare_f = (L4_MABX_B.SPN524_TransSelectedGear ==
15680 L4_MABX_P.Constant_Value_f3);
15681
15682 /* RelationalOperator: '<S1050>/Compare' incorporates:
15683 * Constant: '<S1050>/Constant'
15684 */
15685 L4_MABX_B.Compare_iw = (L4_MABX_B.SPN523_TransCurrentGear ==
15686 L4_MABX_P.Constant_Value_eo);
15687
15688 /* Logic: '<S1043>/Logical Operator1' */
15689 L4_MABX_B.LogicalOperator1_m = (L4_MABX_B.Compare_f && L4_MABX_B.Compare_iw);
15690
15691 /* Outputs for Atomic SubSystem: '<S1043>/If_Then_Else' */
15692
15693 /* Constant: '<S1043>/F_ALLOW_ETC2_FOR_NEUTRAL_OUTPUT_APV' incorporates:
15694 * Constant: '<S1043>/Constant2'
15695 */
15696 L4_MABX_If_Then_Else3(L4_MABX_P.F_ALLOW_ETC2_FOR_NEUTRAL_OUTPUT,
15697 L4_MABX_B.LogicalOperator1_m,
15698 L4_MABX_P.Constant2_Value_l, &L4_MABX_B.If_Then_Else_f4);
15699
15700 /* End of Outputs for SubSystem: '<S1043>/If_Then_Else' */
15701
15702 /* Logic: '<S1043>/Logical Operator2' */
15703 L4_MABX_B.Neutral = (L4_MABX_B.LogicalOperator_j ||
15704 L4_MABX_B.If_Then_Else_f4.Switch);
15705
15706 /* Logic: '<S816>/Logical Operator' */
15707 L4_MABX_B.LogicalOperator_op = !L4_MABX_B.Neutral;
15708
15709 /* Outputs for Enabled SubSystem: '<S559>/GNSSDOPs_011' incorporates:
15710 * EnablePort: '<S560>/Enable'
15711 */
15712 /* Constant: '<S427>/Constant' */
15713 if (L4_MABX_P.Constant_Value_ez > 0.0) {
15714 /* S-Function (rti_commonblock): '<S560>/S-Function1' */
15715 /* This comment workarounds a code generation problem */
15716
15717 /* dSPACE RTICAN RX Message Block: "GNSSDOPs_01" Id:435815168 */
15718 {
15719 UInt32 *CAN_Msg;
15720 static dsfloat time_old = 0.0;
15721
15722 /* Read status and timestamp info (previous message) */
15723 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].timestamp !=
15724 time_old) {
15725 /* ... save timestamp info for the calculation of the RX status
15726 during the consecutive sample hit*/
15727 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].
15728 timestamp;
15729
15730 /* ... set the processed flag to one */
15731 L4_MABX_B.SFunction1_o7_eh = 1.0;
15732 L4_MABX_B.SFunction1_o8_l = (real_T)
15733 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].timestamp;
15734 L4_MABX_B.SFunction1_o9_d = (real_T)
15735 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].deltatime;
15736 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0300].data;
15737
15738 /* Decode CAN message */
15739 {
15740 {
15741 rtican_Signal_t CAN_Sgn;
15742
15743 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
15744 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
15745 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15746 L4_MABX_B.SFunction1_o1_ig = ((real_T) CAN_Sgn.UnsignedSgn);
15747
15748 /* ...... "SetMode" (8|3, standard signal, unsigned int, little endian) */
15749 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15750 CAN_Sgn.UnsignedSgn &= 0x00000007;
15751 L4_MABX_B.SFunction1_o2_cn = ((real_T) CAN_Sgn.UnsignedSgn);
15752
15753 /* ...... "OpMode" (11|3, standard signal, unsigned int, little endian) */
15754 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15755 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 3;
15756 CAN_Sgn.UnsignedSgn &= 0x00000007;
15757 L4_MABX_B.SFunction1_o3_ia = ((real_T) CAN_Sgn.UnsignedSgn);
15758
15759 /* ...... "HDOP_" (16|16, standard signal, signed int, little endian) */
15760 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
15761 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
15762 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15763 if (CAN_Sgn.SignedSgn >> 15) {
15764 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15765 }
15766
15767 L4_MABX_B.SFunction1_o4_al = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
15768
15769 /* ...... "VDOP" (32|16, standard signal, signed int, little endian) */
15770 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
15771 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
15772 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15773 if (CAN_Sgn.SignedSgn >> 15) {
15774 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15775 }
15776
15777 L4_MABX_B.SFunction1_o5_aw = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
15778
15779 /* ...... "TDOP" (48|16, standard signal, signed int, little endian) */
15780 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
15781 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
15782 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15783 if (CAN_Sgn.SignedSgn >> 15) {
15784 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15785 }
15786
15787 L4_MABX_B.SFunction1_o6_nd = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
15788 }
15789 }
15790 } else {
15791 /* set RX status to 0 because no new message has arrived */
15792 L4_MABX_B.SFunction1_o7_eh = 0.0;
15793 }
15794 }
15795 }
15796
15797 /* End of Outputs for SubSystem: '<S559>/GNSSDOPs_011' */
15798
15799 /* DataTypeConversion: '<S559>/Data Type Conversion8' */
15800 L4_MABX_B.RX_status_aq = (L4_MABX_B.SFunction1_o7_eh != 0.0);
15801
15802 /* Outputs for Enabled SubSystem: '<S559>/GNSSDOPs_1' incorporates:
15803 * EnablePort: '<S561>/Enable'
15804 */
15805 /* Constant: '<S427>/Constant' */
15806 if (L4_MABX_P.Constant_Value_ez > 0.0) {
15807 /* S-Function (rti_commonblock): '<S561>/S-Function1' */
15808 /* This comment workarounds a code generation problem */
15809
15810 /* dSPACE RTICAN RX Message Block: "GNSSDOPs_01" Id:435815169 */
15811 {
15812 UInt32 *CAN_Msg;
15813 static dsfloat time_old = 0.0;
15814
15815 /* Read status and timestamp info (previous message) */
15816 if (can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].timestamp !=
15817 time_old) {
15818 /* ... save timestamp info for the calculation of the RX status
15819 during the consecutive sample hit*/
15820 time_old = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].
15821 timestamp;
15822
15823 /* ... set the processed flag to one */
15824 L4_MABX_B.SFunction1_o7_bz = 1.0;
15825 L4_MABX_B.SFunction1_o8_m = (real_T)
15826 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].timestamp;
15827 L4_MABX_B.SFunction1_o9_hi = (real_T)
15828 can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].deltatime;
15829 CAN_Msg = can_type1_M2_C2_XTD[CANTP1_M2_C2_RXSRVC_XTD_0x19FA0301].data;
15830
15831 /* Decode CAN message */
15832 {
15833 {
15834 rtican_Signal_t CAN_Sgn;
15835
15836 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
15837 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
15838 CAN_Sgn.UnsignedSgn &= 0x000000FF;
15839 L4_MABX_B.SFunction1_o1_oq = ((real_T) CAN_Sgn.UnsignedSgn);
15840
15841 /* ...... "SetMode" (8|3, standard signal, unsigned int, little endian) */
15842 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15843 CAN_Sgn.UnsignedSgn &= 0x00000007;
15844 L4_MABX_B.SFunction1_o2_dtj = ((real_T) CAN_Sgn.UnsignedSgn);
15845
15846 /* ...... "OpMode" (11|3, standard signal, unsigned int, little endian) */
15847 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
15848 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 3;
15849 CAN_Sgn.UnsignedSgn &= 0x00000007;
15850 L4_MABX_B.SFunction1_o3_mj = ((real_T) CAN_Sgn.UnsignedSgn);
15851
15852 /* ...... "HDOP_" (16|16, standard signal, signed int, little endian) */
15853 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
15854 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
15855 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15856 if (CAN_Sgn.SignedSgn >> 15) {
15857 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15858 }
15859
15860 L4_MABX_B.SFunction1_o4_ly = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
15861
15862 /* ...... "VDOP" (32|16, standard signal, signed int, little endian) */
15863 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
15864 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
15865 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15866 if (CAN_Sgn.SignedSgn >> 15) {
15867 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15868 }
15869
15870 L4_MABX_B.SFunction1_o5_pz = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
15871
15872 /* ...... "TDOP" (48|16, standard signal, signed int, little endian) */
15873 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
15874 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
15875 CAN_Sgn.SignedSgn &= 0x0000FFFF;
15876 if (CAN_Sgn.SignedSgn >> 15) {
15877 CAN_Sgn.SignedSgn |= 0xFFFF0000;
15878 }
15879
15880 L4_MABX_B.SFunction1_o6_l = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
15881 }
15882 }
15883 } else {
15884 /* set RX status to 0 because no new message has arrived */
15885 L4_MABX_B.SFunction1_o7_bz = 0.0;
15886 }
15887 }
15888 }
15889
15890 /* End of Outputs for SubSystem: '<S559>/GNSSDOPs_1' */
15891
15892 /* Switch: '<S559>/Switch' */
15893 if (L4_MABX_B.RX_status_aq) {
15894 L4_MABX_B.HDOP_ = L4_MABX_B.SFunction1_o4_al;
15895 } else {
15896 L4_MABX_B.HDOP_ = L4_MABX_B.SFunction1_o4_ly;
15897 }
15898
15899 /* Outputs for Atomic SubSystem: '<S65>/Task_20ms' */
15900 /* RateTransition: '<S382>/TmpRTBAtCheckHDOPInport1' */
15901 if (L4_MABX_M->Timing.RateInteraction.TID0_1 == 1) {
15902 L4_MABX_B.HDOP__f1 = L4_MABX_B.HDOP_;
15903 L4_MABX_B.FrontAxleSpeed_d = L4_MABX_B.SFunction1_o1_in;
15904 L4_MABX_B.FrontAxleSpeed_dv = L4_MABX_B.SFunction1_o1_in;
15905 L4_MABX_B.FrontAxleSpeed_dvq = L4_MABX_B.SFunction1_o1_in;
15906 L4_MABX_B.TmpRTBAtVehHeadingInport1 = YawRate;
15907 }
15908
15909 /* End of RateTransition: '<S382>/TmpRTBAtCheckHDOPInport1' */
15910 /* End of Outputs for SubSystem: '<S65>/Task_20ms' */
15911
15912 /* Switch: '<S384>/Switch2' incorporates:
15913 * Constant: '<S384>/No Data'
15914 * Switch: '<S384>/Switch5'
15915 * Switch: '<S384>/Switch6'
15916 * Switch: '<S384>/Switch7'
15917 * Switch: '<S384>/Switch8'
15918 */
15919 if (RTMapsOk) {
15920 /* Gain: '<S384>/m//s_to_km//h' */
15921 L4_MABX_B.ms_to_kmh = L4_MABX_P.ms_to_kmh_Gain *
15922 L4_MABX_B.Decoder_o1.CurrentVelocity;
15923 CurrentVelocity_kph = L4_MABX_B.ms_to_kmh;
15924
15925 /* Gain: '<S384>/for_logging3' */
15926 L4_MABX_B.for_logging3 = L4_MABX_P.for_logging3_Gain *
15927 L4_MABX_B.Decoder_o1.CrosstrackError;
15928 CrosstrackError = L4_MABX_B.for_logging3;
15929
15930 /* Gain: '<S384>/for_logging4' */
15931 L4_MABX_B.for_logging4 = L4_MABX_P.for_logging4_Gain *
15932 L4_MABX_B.Decoder_o1.GPS_X;
15933 GPS_X = L4_MABX_B.for_logging4;
15934
15935 /* Gain: '<S384>/for_logging5' */
15936 L4_MABX_B.for_logging5 = L4_MABX_P.for_logging5_Gain *
15937 L4_MABX_B.Decoder_o1.GPS_Y;
15938 GPS_Y = L4_MABX_B.for_logging5;
15939
15940 /* Gain: '<S384>/for_logging6' */
15941 L4_MABX_B.for_logging6 = L4_MABX_P.for_logging6_Gain *
15942 L4_MABX_B.Decoder_o1.GPS_Time;
15943 GPS_Time = L4_MABX_B.for_logging6;
15944 } else {
15945 CurrentVelocity_kph = L4_MABX_P.NoData_Value;
15946 CrosstrackError = L4_MABX_P.NoData_Value;
15947 GPS_X = L4_MABX_P.NoData_Value;
15948 GPS_Y = L4_MABX_P.NoData_Value;
15949 GPS_Time = L4_MABX_P.NoData_Value;
15950 }
15951
15952 /* End of Switch: '<S384>/Switch2' */
15953
15954 /* S-Function (rti_commonblock): '<S394>/S-Function1' */
15955
15956 /* This comment workarounds a code generation problem */
15957
15958 /* End of Outputs for S-Function (rti_commonblock): '<S394>/S-Function1' */
15959
15960 /* S-Function (rti_commonblock): '<S400>/S-Function1' */
15961
15962 /* This comment workarounds a code generation problem */
15963
15964 /* End of Outputs for S-Function (rti_commonblock): '<S400>/S-Function1' */
15965
15966 /* S-Function (rti_commonblock): '<S386>/TRC Exclusion' */
15967 /* This comment workarounds a code generation problem */
15968
15969 /* S-Function (rti_commonblock): '<S387>/TRC Exclusion' */
15970 /* This comment workarounds a code generation problem */
15971
15972 /* UnitDelay: '<S3>/Unit_Delay' */
15973 L4_MABX_B.DesSteeringAngle = L4_MABX_DW.Unit_Delay_1_DSTATE;
15974 L4_MABX_B.Stanley_axleAngle2 = L4_MABX_DW.Unit_Delay_10_DSTATE;
15975 L4_MABX_B.SPN1760_GrossCombinationVehic_d = L4_MABX_DW.Unit_Delay_100_DSTATE;
15976 L4_MABX_B.ACCDistanceAlertSignal_d = L4_MABX_DW.Unit_Delay_101_DSTATE;
15977 L4_MABX_B.ForwardCollisionWarning_n = L4_MABX_DW.Unit_Delay_102_DSTATE;
15978 L4_MABX_B.SPN544_EngineReferenceTorque_j = L4_MABX_DW.Unit_Delay_103_DSTATE;
15979 L4_MABX_B.ROPEngCtrlActive = L4_MABX_DW.Unit_Delay_104_DSTATE;
15980 L4_MABX_B.ROPBrakeCtrlActive = L4_MABX_DW.Unit_Delay_105_DSTATE;
15981 L4_MABX_B.YCEngCtrlActive = L4_MABX_DW.Unit_Delay_106_DSTATE;
15982 L4_MABX_B.YCBrakeCtrlActive = L4_MABX_DW.Unit_Delay_107_DSTATE;
15983 L4_MABX_B.SPN1807_SteeringWheelAngle = L4_MABX_DW.Unit_Delay_108_DSTATE;
15984 L4_MABX_B.SPN1808_YawRate = L4_MABX_DW.Unit_Delay_109_DSTATE;
15985 L4_MABX_B.DesSteeringAngleTerm = L4_MABX_DW.Unit_Delay_11_DSTATE;
15986 L4_MABX_B.SPN1810_LongitudinalAcceleratio = L4_MABX_DW.Unit_Delay_110_DSTATE;
15987 L4_MABX_B.SteerWheelTurnCounter = L4_MABX_DW.Unit_Delay_111_DSTATE;
15988 L4_MABX_B.SteerWheelAngleSensorType = L4_MABX_DW.Unit_Delay_112_DSTATE;
15989 L4_MABX_B.LateralAcceleration = L4_MABX_DW.Unit_Delay_113_DSTATE;
15990 L4_MABX_B.BarometricPress = L4_MABX_DW.Unit_Delay_114_DSTATE;
15991 L4_MABX_B.AmbientAirTemp = L4_MABX_DW.Unit_Delay_115_DSTATE;
15992 L4_MABX_B.F_Truck1571_VIN_Match = L4_MABX_DW.Unit_Delay_116_DSTATE;
15993 L4_MABX_B.F_Truck166_VIN_Match = L4_MABX_DW.Unit_Delay_117_DSTATE;
15994 L4_MABX_B.PitchAngleExRange_h = L4_MABX_DW.Unit_Delay_118_DSTATE;
15995 L4_MABX_B.PX2_LanePosEstPosition = L4_MABX_DW.Unit_Delay_119_DSTATE;
15996 L4_MABX_B.DesSteeringDistTerm = L4_MABX_DW.Unit_Delay_12_DSTATE;
15997 L4_MABX_B.PX2_LanePosEstAngle = L4_MABX_DW.Unit_Delay_120_DSTATE;
15998 L4_MABX_B.PX2_LanePosEstNumPoints = L4_MABX_DW.Unit_Delay_121_DSTATE;
15999 L4_MABX_B.Latitude__e = L4_MABX_DW.Unit_Delay_122_DSTATE;
16000 L4_MABX_B.Longitude__k = L4_MABX_DW.Unit_Delay_123_DSTATE;
16001 L4_MABX_B.HDOP__f = L4_MABX_DW.Unit_Delay_124_DSTATE;
16002 L4_MABX_B.XPRControlMode_d = L4_MABX_DW.Unit_Delay_125_DSTATE;
16003 L4_MABX_B.XPRErrorState_a = L4_MABX_DW.Unit_Delay_126_DSTATE;
16004 L4_MABX_B.PressureP1_l = L4_MABX_DW.Unit_Delay_127_DSTATE;
16005 L4_MABX_B.PressureP4_a = L4_MABX_DW.Unit_Delay_128_DSTATE;
16006 L4_MABX_B.PressureP21_k = L4_MABX_DW.Unit_Delay_129_DSTATE;
16007 L4_MABX_B.numLanePoints = L4_MABX_DW.Unit_Delay_13_DSTATE;
16008 L4_MABX_B.PressureP22_g = L4_MABX_DW.Unit_Delay_130_DSTATE;
16009 L4_MABX_B.PressureP42_h = L4_MABX_DW.Unit_Delay_131_DSTATE;
16010 L4_MABX_B.ReAX_ActualHandwheelPos_f = L4_MABX_DW.Unit_Delay_132_DSTATE;
16011 L4_MABX_B.ReAX_EchoedSteerWheelPos_f = L4_MABX_DW.Unit_Delay_133_DSTATE;
16012 L4_MABX_B.RTMapsOk_c = L4_MABX_DW.Unit_Delay_134_DSTATE;
16013 L4_MABX_B.SupervisorMode_i = L4_MABX_DW.Unit_Delay_135_DSTATE;
16014 L4_MABX_B.CurrentAzimuth_rad_l = L4_MABX_DW.Unit_Delay_136_DSTATE;
16015 L4_MABX_B.TargetAzimuth_rad_f = L4_MABX_DW.Unit_Delay_137_DSTATE;
16016 L4_MABX_B.CurrentVelocity_kph_f = L4_MABX_DW.Unit_Delay_138_DSTATE;
16017 L4_MABX_B.TargetVelocity_kph_n = L4_MABX_DW.Unit_Delay_139_DSTATE;
16018 L4_MABX_B.rawPositionError = L4_MABX_DW.Unit_Delay_14_DSTATE;
16019 L4_MABX_B.Curvature_j = L4_MABX_DW.Unit_Delay_140_DSTATE;
16020 L4_MABX_B.CrosstrackError_o = L4_MABX_DW.Unit_Delay_141_DSTATE;
16021 L4_MABX_B.slewedPosError = L4_MABX_DW.Unit_Delay_15_DSTATE;
16022 L4_MABX_B.previewSteeringAngle = L4_MABX_DW.Unit_Delay_16_DSTATE;
16023 L4_MABX_B.APTC_Pedal_torque_dem_value = L4_MABX_DW.Unit_Delay_17_DSTATE;
16024 L4_MABX_B.APTC_arb_pedal_low_idl_sw = L4_MABX_DW.Unit_Delay_18_DSTATE;
16025 L4_MABX_B.APTC_arb_pedal_position = L4_MABX_DW.Unit_Delay_19_DSTATE;
16026 L4_MABX_B.DesSteeringPID_Dterm = L4_MABX_DW.Unit_Delay_2_DSTATE;
16027 L4_MABX_B.signal1 = L4_MABX_DW.Unit_Delay_20_DSTATE;
16028 L4_MABX_B.PID_output = L4_MABX_DW.Unit_Delay_21_DSTATE;
16029 L4_MABX_B.PID_output_unlim = L4_MABX_DW.Unit_Delay_22_DSTATE;
16030 L4_MABX_B.PID_control_error = L4_MABX_DW.Unit_Delay_23_DSTATE;
16031 L4_MABX_B.PID_p_term = L4_MABX_DW.Unit_Delay_24_DSTATE;
16032 L4_MABX_B.PID_i_term = L4_MABX_DW.Unit_Delay_25_DSTATE;
16033 L4_MABX_B.PID_d_term = L4_MABX_DW.Unit_Delay_26_DSTATE;
16034 L4_MABX_B.PID_hold_i_term_f = L4_MABX_DW.Unit_Delay_27_DSTATE;
16035 L4_MABX_B.ThrottlePID_Y = L4_MABX_DW.Unit_Delay_28_DSTATE;
16036 L4_MABX_B.EngineSpeedTarget_Y = L4_MABX_DW.Unit_Delay_29_DSTATE;
16037 L4_MABX_B.DesSteeringPID_Iterm = L4_MABX_DW.Unit_Delay_3_DSTATE;
16038 L4_MABX_B.F_Ignition_relay_command = L4_MABX_DW.Unit_Delay_30_DSTATE;
16039 L4_MABX_B.F_Inverter_relay_command = L4_MABX_DW.Unit_Delay_31_DSTATE;
16040 L4_MABX_B.F_MABX_relay_command = L4_MABX_DW.Unit_Delay_32_DSTATE;
16041 L4_MABX_B.F_Sensor_relay_command = L4_MABX_DW.Unit_Delay_33_DSTATE;
16042 L4_MABX_B.BrkPedArbBrakeSwitch = L4_MABX_DW.Unit_Delay_34_DSTATE;
16043 L4_MABX_B.Accel_rate_ms2 = L4_MABX_DW.Unit_Delay_35_DSTATE;
16044 L4_MABX_B.BrakingControlActive = L4_MABX_DW.Unit_Delay_36_DSTATE;
16045 L4_MABX_B.F_Hold_brakes_at_zero = L4_MABX_DW.Unit_Delay_37_DSTATE;
16046 L4_MABX_B.BrakingPID_Y = L4_MABX_DW.Unit_Delay_38_DSTATE;
16047 L4_MABX_B.BrakingPID_Y_Direct_Pressure = L4_MABX_DW.Unit_Delay_39_DSTATE;
16048 L4_MABX_B.DesSteeringPID_Pterm = L4_MABX_DW.Unit_Delay_4_DSTATE;
16049 L4_MABX_B.VSPD_TARGET_KPH_APV_h = L4_MABX_DW.Unit_Delay_40_DSTATE;
16050 L4_MABX_B.Vehicle_speed_target = L4_MABX_DW.Unit_Delay_41_DSTATE;
16051 L4_MABX_B.VSPD_HYST_KPH_APV = L4_MABX_DW.Unit_Delay_42_DSTATE;
16052 L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_APV = L4_MABX_DW.Unit_Delay_43_DSTATE;
16053 L4_MABX_B.ACCEL_LIM_MS2_APV = L4_MABX_DW.Unit_Delay_44_DSTATE;
16054 L4_MABX_B.AutonomousOutputEnabled_k = L4_MABX_DW.Unit_Delay_46_DSTATE;
16055 L4_MABX_B.DesSteeringPID_Y = L4_MABX_DW.Unit_Delay_5_DSTATE;
16056 L4_MABX_B.DesSteeringPID_e = L4_MABX_DW.Unit_Delay_6_DSTATE;
16057 L4_MABX_B.DeSteeringPID_Y2 = L4_MABX_DW.Unit_Delay_7_DSTATE;
16058 L4_MABX_B.CurvatureEst = L4_MABX_DW.Unit_Delay_8_DSTATE;
16059 L4_MABX_B.PedalPWMPos = L4_MABX_DW.Unit_Delay_82_DSTATE;
16060 L4_MABX_B.IgnitionKeySwitch_voltage_j = L4_MABX_DW.Unit_Delay_83_DSTATE;
16061 L4_MABX_B.BrakeSwitch_f = L4_MABX_DW.Unit_Delay_84_DSTATE;
16062 L4_MABX_B.Park_brake_switch = L4_MABX_DW.Unit_Delay_85_DSTATE;
16063 L4_MABX_B.CruiseCtrlEnableSwitch = L4_MABX_DW.Unit_Delay_86_DSTATE;
16064 L4_MABX_B.FrontAxleSpeed = L4_MABX_DW.Unit_Delay_87_DSTATE;
16065 L4_MABX_B.FrontAxleLeftWheelSpeed = L4_MABX_DW.Unit_Delay_88_DSTATE;
16066 L4_MABX_B.FrontAxleRightWheelSpeed = L4_MABX_DW.Unit_Delay_89_DSTATE;
16067 L4_MABX_B.Stanley_axleAngle = L4_MABX_DW.Unit_Delay_9_DSTATE;
16068 L4_MABX_B.EBSBrakeSwitch = L4_MABX_DW.Unit_Delay_90_DSTATE;
16069 L4_MABX_B.SPN524_TransSelectedGear_j = L4_MABX_DW.Unit_Delay_91_DSTATE;
16070 L4_MABX_B.SPN523_TransCurrentGear_e = L4_MABX_DW.Unit_Delay_92_DSTATE;
16071 L4_MABX_B.SPN526_TransActualGearRatio_f = L4_MABX_DW.Unit_Delay_93_DSTATE;
16072 L4_MABX_B.ActualEngPercentTorque = L4_MABX_DW.Unit_Delay_94_DSTATE;
16073 L4_MABX_B.ActlEngPrcntTrqueHighResolution = L4_MABX_DW.Unit_Delay_95_DSTATE;
16074 L4_MABX_B.EngSpeed = L4_MABX_DW.Unit_Delay_96_DSTATE;
16075 L4_MABX_B.DriversDemandEngPercentTorque = L4_MABX_DW.Unit_Delay_97_DSTATE;
16076 L4_MABX_B.SPN514_NominalFrictionPercent_k = L4_MABX_DW.Unit_Delay_98_DSTATE;
16077 L4_MABX_B.SPN2978_EstEngParasiticLosses_n = L4_MABX_DW.Unit_Delay_99_DSTATE;
16078
16079 /* DataTypeConversion: '<S512>/Data Type Conversion' */
16080 L4_MABX_B.DataTypeConversion_pz = L4_MABX_B.DataTypeConversion_j3[0];
16081
16082 /* DataTypeConversion: '<S512>/Data Type Conversion1' */
16083 L4_MABX_B.DataTypeConversion1_fx = L4_MABX_B.DataTypeConversion_j3[1];
16084
16085 /* ArithShift: '<S512>/Shift Arithmetic' */
16086 L4_MABX_B.ShiftArithmetic_o = (uint16_T)(L4_MABX_B.DataTypeConversion1_fx << 8);
16087
16088 /* S-Function (sfix_bitop): '<S539>/Operator' */
16089 L4_MABX_B.Operator_f4 = (uint16_T)(L4_MABX_B.DataTypeConversion_pz |
16090 L4_MABX_B.ShiftArithmetic_o);
16091
16092 /* DataTypeConversion: '<S539>/DataType' */
16093 L4_MABX_B.DataType_pz = L4_MABX_B.Operator_f4;
16094
16095 /* DataTypeConversion: '<S512>/Data Type Conversion2' */
16096 L4_MABX_B.DataTypeConversion2_f = L4_MABX_B.DataType_pz;
16097
16098 /* Product: '<S512>/Product' incorporates:
16099 * Constant: '<S512>/Constant'
16100 */
16101 L4_MABX_B.SPN188_EngineSpeedAtIdlePoint1 = L4_MABX_B.DataTypeConversion2_f *
16102 L4_MABX_P.Constant_Value_eg;
16103
16104 /* DataTypeConversion: '<S404>/Data Type Conversion' */
16105 L4_MABX_B.DataTypeConversion_e = L4_MABX_B.SPN188_EngineSpeedAtIdlePoint1;
16106
16107 /* DataTypeConversion: '<S519>/Data Type Conversion' */
16108 L4_MABX_B.DataTypeConversion_l = L4_MABX_B.DataTypeConversion_j3[2];
16109
16110 /* Sum: '<S519>/Add' incorporates:
16111 * Constant: '<S519>/Constant'
16112 */
16113 L4_MABX_B.SPN539_EnginePercentTorqueAtIdl = L4_MABX_B.DataTypeConversion_l +
16114 L4_MABX_P.Constant_Value_gf;
16115
16116 /* DataTypeConversion: '<S404>/Data Type Conversion1' */
16117 L4_MABX_B.DataTypeConversion1_a = L4_MABX_B.SPN539_EnginePercentTorqueAtIdl;
16118
16119 /* DataTypeConversion: '<S516>/Data Type Conversion' */
16120 L4_MABX_B.DataTypeConversion_my = L4_MABX_B.DataTypeConversion_j3[15];
16121
16122 /* DataTypeConversion: '<S516>/Data Type Conversion1' */
16123 L4_MABX_B.DataTypeConversion1_gw = L4_MABX_B.DataTypeConversion_j3[16];
16124
16125 /* ArithShift: '<S516>/Shift Arithmetic' */
16126 L4_MABX_B.ShiftArithmetic_or = (uint16_T)(L4_MABX_B.DataTypeConversion1_gw <<
16127 8);
16128
16129 /* S-Function (sfix_bitop): '<S541>/Operator' */
16130 L4_MABX_B.Operator_ka = (uint16_T)(L4_MABX_B.DataTypeConversion_my |
16131 L4_MABX_B.ShiftArithmetic_or);
16132
16133 /* DataTypeConversion: '<S541>/DataType' */
16134 L4_MABX_B.DataType_a0 = L4_MABX_B.Operator_ka;
16135
16136 /* DataTypeConversion: '<S516>/Data Type Conversion2' */
16137 L4_MABX_B.DataTypeConversion2_m = L4_MABX_B.DataType_a0;
16138
16139 /* Product: '<S516>/Product' incorporates:
16140 * Constant: '<S516>/Constant'
16141 */
16142 L4_MABX_B.SPN532_EngineSpeedAtHighIdlePoi = L4_MABX_B.DataTypeConversion2_m *
16143 L4_MABX_P.Constant_Value_ah;
16144
16145 /* DataTypeConversion: '<S404>/Data Type Conversion10' */
16146 L4_MABX_B.DataTypeConversion10 = L4_MABX_B.SPN532_EngineSpeedAtHighIdlePoi;
16147
16148 /* DataTypeConversion: '<S517>/Data Type Conversion1' */
16149 L4_MABX_B.DataTypeConversion1_o = L4_MABX_B.DataTypeConversion_j3[17];
16150
16151 /* DataTypeConversion: '<S517>/Data Type Conversion3' */
16152 L4_MABX_B.DataTypeConversion3_p0w = L4_MABX_B.DataTypeConversion_j3[18];
16153
16154 /* ArithShift: '<S517>/Shift Arithmetic' */
16155 L4_MABX_B.ShiftArithmetic_b = (uint16_T)(L4_MABX_B.DataTypeConversion3_p0w <<
16156 8);
16157
16158 /* S-Function (sfix_bitop): '<S542>/Operator' */
16159 L4_MABX_B.Operator_da = (uint16_T)(L4_MABX_B.DataTypeConversion1_o |
16160 L4_MABX_B.ShiftArithmetic_b);
16161
16162 /* DataTypeConversion: '<S542>/DataType' */
16163 L4_MABX_B.DataType_b4 = L4_MABX_B.Operator_da;
16164
16165 /* DataTypeConversion: '<S517>/Data Type Conversion2' */
16166 L4_MABX_B.DataTypeConversion2_o = L4_MABX_B.DataType_b4;
16167
16168 /* Product: '<S517>/Product' incorporates:
16169 * Constant: '<S517>/Constant'
16170 */
16171 L4_MABX_B.SPN545_EngineGainKpOfTheEndspee = L4_MABX_B.DataTypeConversion2_o *
16172 L4_MABX_P.Constant_Value_na;
16173
16174 /* DataTypeConversion: '<S404>/Data Type Conversion11' */
16175 L4_MABX_B.DataTypeConversion11 = L4_MABX_B.SPN545_EngineGainKpOfTheEndspee;
16176
16177 /* DataTypeConversion: '<S520>/Data Type Conversion1' */
16178 L4_MABX_B.DataTypeConversion1_em = L4_MABX_B.DataTypeConversion_j3[21];
16179
16180 /* DataTypeConversion: '<S520>/Data Type Conversion3' */
16181 L4_MABX_B.DataTypeConversion3_j = L4_MABX_B.DataTypeConversion_j3[22];
16182
16183 /* ArithShift: '<S520>/Shift Arithmetic' */
16184 L4_MABX_B.ShiftArithmetic_m = (uint16_T)(L4_MABX_B.DataTypeConversion3_j << 8);
16185
16186 /* S-Function (sfix_bitop): '<S544>/Operator' */
16187 L4_MABX_B.Operator_ch = (uint16_T)(L4_MABX_B.DataTypeConversion1_em |
16188 L4_MABX_B.ShiftArithmetic_m);
16189
16190 /* DataTypeConversion: '<S544>/DataType' */
16191 L4_MABX_B.DataType_ce = L4_MABX_B.Operator_ch;
16192
16193 /* DataTypeConversion: '<S520>/Data Type Conversion2' */
16194 L4_MABX_B.DataTypeConversion2_b = L4_MABX_B.DataType_ce;
16195
16196 /* Product: '<S520>/Product' incorporates:
16197 * Constant: '<S520>/Constant'
16198 */
16199 L4_MABX_B.SPN533_EngineMaximumMomentaryOv = L4_MABX_B.DataTypeConversion2_b *
16200 L4_MABX_P.Constant_Value_ar;
16201
16202 /* DataTypeConversion: '<S404>/Data Type Conversion13' */
16203 L4_MABX_B.DataTypeConversion13 = L4_MABX_B.SPN533_EngineMaximumMomentaryOv;
16204
16205 /* DataTypeConversion: '<S521>/Data Type Conversion2' */
16206 L4_MABX_B.DataTypeConversion2_hw = L4_MABX_B.DataTypeConversion_j3[23];
16207
16208 /* Product: '<S521>/Product' incorporates:
16209 * Constant: '<S521>/Constant'
16210 */
16211 L4_MABX_B.SPN534_EngineMaximumMomentaryOv = L4_MABX_B.DataTypeConversion2_hw *
16212 L4_MABX_P.Constant_Value_pc;
16213
16214 /* DataTypeConversion: '<S404>/Data Type Conversion14' */
16215 L4_MABX_B.DataTypeConversion14 = L4_MABX_B.SPN534_EngineMaximumMomentaryOv;
16216
16217 /* DataTypeConversion: '<S522>/Data Type Conversion2' */
16218 L4_MABX_B.DataTypeConversion2_a = L4_MABX_B.DataTypeConversion_j3[24];
16219
16220 /* Product: '<S522>/Product' incorporates:
16221 * Constant: '<S522>/Constant'
16222 */
16223 L4_MABX_B.SPN535_EngineRequestedSpeedCont = L4_MABX_B.DataTypeConversion2_a *
16224 L4_MABX_P.Constant_Value_m;
16225
16226 /* DataTypeConversion: '<S404>/Data Type Conversion15' */
16227 L4_MABX_B.DataTypeConversion15 = L4_MABX_B.SPN535_EngineRequestedSpeedCont;
16228
16229 /* DataTypeConversion: '<S523>/Data Type Conversion2' */
16230 L4_MABX_B.DataTypeConversion2_og = L4_MABX_B.DataTypeConversion_j3[25];
16231
16232 /* Product: '<S523>/Product' incorporates:
16233 * Constant: '<S523>/Constant'
16234 */
16235 L4_MABX_B.SPN536_EngineRequestedSpeedCont = L4_MABX_B.DataTypeConversion2_og *
16236 L4_MABX_P.Constant_Value_kj;
16237
16238 /* DataTypeConversion: '<S404>/Data Type Conversion16' */
16239 L4_MABX_B.DataTypeConversion16 = L4_MABX_B.SPN536_EngineRequestedSpeedCont;
16240
16241 /* DataTypeConversion: '<S524>/Data Type Conversion' */
16242 L4_MABX_B.DataTypeConversion_a = L4_MABX_B.DataTypeConversion_j3[26];
16243
16244 /* Sum: '<S524>/Add' incorporates:
16245 * Constant: '<S524>/Constant'
16246 */
16247 L4_MABX_B.SPN537_EngineRequestedTorqueCon = L4_MABX_B.DataTypeConversion_a +
16248 L4_MABX_P.Constant_Value_eos;
16249
16250 /* DataTypeConversion: '<S404>/Data Type Conversion17' */
16251 L4_MABX_B.DataTypeConversion17 = L4_MABX_B.SPN537_EngineRequestedTorqueCon;
16252
16253 /* DataTypeConversion: '<S525>/Data Type Conversion' */
16254 L4_MABX_B.DataTypeConversion_an = L4_MABX_B.DataTypeConversion_j3[27];
16255
16256 /* Sum: '<S525>/Add' incorporates:
16257 * Constant: '<S525>/Constant'
16258 */
16259 L4_MABX_B.SPN538_EngineRequestedTorqueCon = L4_MABX_B.DataTypeConversion_an +
16260 L4_MABX_P.Constant_Value_hpq;
16261
16262 /* DataTypeConversion: '<S404>/Data Type Conversion18' */
16263 L4_MABX_B.DataTypeConversion18 = L4_MABX_B.SPN538_EngineRequestedTorqueCon;
16264
16265 /* DataTypeConversion: '<S526>/Data Type Conversion1' */
16266 L4_MABX_B.DataTypeConversion1_hy = L4_MABX_B.DataTypeConversion_j3[28];
16267
16268 /* DataTypeConversion: '<S526>/Data Type Conversion3' */
16269 L4_MABX_B.DataTypeConversion3_d = L4_MABX_B.DataTypeConversion_j3[29];
16270
16271 /* ArithShift: '<S526>/Shift Arithmetic' */
16272 L4_MABX_B.ShiftArithmetic_l = (uint16_T)(L4_MABX_B.DataTypeConversion3_d << 8);
16273
16274 /* S-Function (sfix_bitop): '<S545>/Operator' */
16275 L4_MABX_B.Operator_i = (uint16_T)(L4_MABX_B.DataTypeConversion1_hy |
16276 L4_MABX_B.ShiftArithmetic_l);
16277
16278 /* DataTypeConversion: '<S545>/DataType' */
16279 L4_MABX_B.DataType_mr = L4_MABX_B.Operator_i;
16280
16281 /* DataTypeConversion: '<S526>/Data Type Conversion2' */
16282 L4_MABX_B.DataTypeConversion2_p = L4_MABX_B.DataType_mr;
16283
16284 /* Product: '<S526>/Product' incorporates:
16285 * Constant: '<S526>/Constant'
16286 */
16287 L4_MABX_B.SPN1712_EngRequestedSpeedCtrlRn = L4_MABX_B.DataTypeConversion2_p *
16288 L4_MABX_P.Constant_Value_jn;
16289
16290 /* DataTypeConversion: '<S404>/Data Type Conversion19' */
16291 L4_MABX_B.DataTypeConversion19 = L4_MABX_B.SPN1712_EngRequestedSpeedCtrlRn;
16292
16293 /* DataTypeConversion: '<S534>/Data Type Conversion' */
16294 L4_MABX_B.DataTypeConversion_bc = L4_MABX_B.DataTypeConversion_j3[3];
16295
16296 /* DataTypeConversion: '<S534>/Data Type Conversion1' */
16297 L4_MABX_B.DataTypeConversion1_dm = L4_MABX_B.DataTypeConversion_j3[4];
16298
16299 /* ArithShift: '<S534>/Shift Arithmetic' */
16300 L4_MABX_B.ShiftArithmetic_d = (uint16_T)(L4_MABX_B.DataTypeConversion1_dm << 8);
16301
16302 /* S-Function (sfix_bitop): '<S548>/Operator' */
16303 L4_MABX_B.Operator_eo = (uint16_T)(L4_MABX_B.DataTypeConversion_bc |
16304 L4_MABX_B.ShiftArithmetic_d);
16305
16306 /* DataTypeConversion: '<S548>/DataType' */
16307 L4_MABX_B.DataType_i2 = L4_MABX_B.Operator_eo;
16308
16309 /* DataTypeConversion: '<S534>/Data Type Conversion2' */
16310 L4_MABX_B.DataTypeConversion2_f4 = L4_MABX_B.DataType_i2;
16311
16312 /* Product: '<S534>/Product' incorporates:
16313 * Constant: '<S534>/Constant'
16314 */
16315 L4_MABX_B.SPN528_EngineSpeedAtPoint2 = L4_MABX_B.DataTypeConversion2_f4 *
16316 L4_MABX_P.Constant_Value_du;
16317
16318 /* DataTypeConversion: '<S404>/Data Type Conversion2' */
16319 L4_MABX_B.DataTypeConversion2_n = L4_MABX_B.SPN528_EngineSpeedAtPoint2;
16320
16321 /* DataTypeConversion: '<S527>/Data Type Conversion1' */
16322 L4_MABX_B.DataTypeConversion1_c3 = L4_MABX_B.DataTypeConversion_j3[30];
16323
16324 /* DataTypeConversion: '<S527>/Data Type Conversion3' */
16325 L4_MABX_B.DataTypeConversion3_c = L4_MABX_B.DataTypeConversion_j3[31];
16326
16327 /* ArithShift: '<S527>/Shift Arithmetic' */
16328 L4_MABX_B.ShiftArithmetic_di = (uint16_T)(L4_MABX_B.DataTypeConversion3_c << 8);
16329
16330 /* S-Function (sfix_bitop): '<S546>/Operator' */
16331 L4_MABX_B.Operator_jg = (uint16_T)(L4_MABX_B.DataTypeConversion1_c3 |
16332 L4_MABX_B.ShiftArithmetic_di);
16333
16334 /* DataTypeConversion: '<S546>/DataType' */
16335 L4_MABX_B.DataType_ol = L4_MABX_B.Operator_jg;
16336
16337 /* DataTypeConversion: '<S527>/Data Type Conversion2' */
16338 L4_MABX_B.DataTypeConversion2_g = L4_MABX_B.DataType_ol;
16339
16340 /* Product: '<S527>/Product' incorporates:
16341 * Constant: '<S527>/Constant'
16342 */
16343 L4_MABX_B.SPN1794_EngineMomentOfInertia = L4_MABX_B.DataTypeConversion2_g *
16344 L4_MABX_P.Constant_Value_js;
16345
16346 /* DataTypeConversion: '<S404>/Data Type Conversion20' */
16347 L4_MABX_B.DataTypeConversion20 = L4_MABX_B.SPN1794_EngineMomentOfInertia;
16348
16349 /* DataTypeConversion: '<S528>/Data Type Conversion' */
16350 L4_MABX_B.DataTypeConversion_ba = L4_MABX_B.DataTypeConversion_j3[32];
16351
16352 /* DataTypeConversion: '<S528>/Data Type Conversion1' */
16353 L4_MABX_B.DataTypeConversion1_dh = L4_MABX_B.DataTypeConversion_j3[33];
16354
16355 /* ArithShift: '<S528>/Shift Arithmetic' */
16356 L4_MABX_B.ShiftArithmetic_j = (uint16_T)(L4_MABX_B.DataTypeConversion1_dh << 8);
16357
16358 /* S-Function (sfix_bitop): '<S547>/Operator' */
16359 L4_MABX_B.Operator_b3 = (uint16_T)(L4_MABX_B.DataTypeConversion_ba |
16360 L4_MABX_B.ShiftArithmetic_j);
16361
16362 /* DataTypeConversion: '<S547>/DataType' */
16363 L4_MABX_B.DataType_jj = L4_MABX_B.Operator_b3;
16364
16365 /* DataTypeConversion: '<S528>/Data Type Conversion2' */
16366 L4_MABX_B.SPN1846_EngineDefaultTorqueLimi = L4_MABX_B.DataType_jj;
16367
16368 /* DataTypeConversion: '<S404>/Data Type Conversion21' */
16369 L4_MABX_B.DataTypeConversion21 = L4_MABX_B.SPN1846_EngineDefaultTorqueLimi;
16370
16371 /* DataTypeConversion: '<S404>/Data Type Conversion22' */
16372 L4_MABX_B.DataTypeConversion22 = L4_MABX_B.DataTypeConversion_j3[34];
16373
16374 /* DataTypeConversion: '<S404>/Data Type Conversion23' */
16375 L4_MABX_B.DataTypeConversion23 = L4_MABX_B.DataTypeConversion_j3[35];
16376
16377 /* DataTypeConversion: '<S404>/Data Type Conversion24' */
16378 L4_MABX_B.DataTypeConversion24 = L4_MABX_B.DataTypeConversion_j3[36];
16379
16380 /* DataTypeConversion: '<S404>/Data Type Conversion25' */
16381 L4_MABX_B.DataTypeConversion25 = L4_MABX_B.DataTypeConversion_j3[37];
16382
16383 /* DataTypeConversion: '<S404>/Data Type Conversion26' */
16384 L4_MABX_B.DataTypeConversion26 = L4_MABX_B.DataTypeConversion_j3[38];
16385
16386 /* DataTypeConversion: '<S535>/Data Type Conversion' */
16387 L4_MABX_B.DataTypeConversion_m = L4_MABX_B.DataTypeConversion_j3[5];
16388
16389 /* Sum: '<S535>/Add' incorporates:
16390 * Constant: '<S535>/Constant'
16391 */
16392 L4_MABX_B.SPN540_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_m +
16393 L4_MABX_P.Constant_Value_h5;
16394
16395 /* DataTypeConversion: '<S404>/Data Type Conversion3' */
16396 L4_MABX_B.DataTypeConversion3 = L4_MABX_B.SPN540_EnginePercentTorqueAtPoi;
16397
16398 /* DataTypeConversion: '<S536>/Data Type Conversion' */
16399 L4_MABX_B.DataTypeConversion_iz = L4_MABX_B.DataTypeConversion_j3[6];
16400
16401 /* DataTypeConversion: '<S536>/Data Type Conversion1' */
16402 L4_MABX_B.DataTypeConversion1_cz = L4_MABX_B.DataTypeConversion_j3[7];
16403
16404 /* ArithShift: '<S536>/Shift Arithmetic' */
16405 L4_MABX_B.ShiftArithmetic_i = (uint16_T)(L4_MABX_B.DataTypeConversion1_cz << 8);
16406
16407 /* S-Function (sfix_bitop): '<S549>/Operator' */
16408 L4_MABX_B.Operator_l = (uint16_T)(L4_MABX_B.DataTypeConversion_iz |
16409 L4_MABX_B.ShiftArithmetic_i);
16410
16411 /* DataTypeConversion: '<S549>/DataType' */
16412 L4_MABX_B.DataType_bh = L4_MABX_B.Operator_l;
16413
16414 /* DataTypeConversion: '<S536>/Data Type Conversion2' */
16415 L4_MABX_B.DataTypeConversion2_l = L4_MABX_B.DataType_bh;
16416
16417 /* Product: '<S536>/Product' incorporates:
16418 * Constant: '<S536>/Constant'
16419 */
16420 L4_MABX_B.SPN529_EngineSpeedAtPoint3 = L4_MABX_B.DataTypeConversion2_l *
16421 L4_MABX_P.Constant_Value_an;
16422
16423 /* DataTypeConversion: '<S404>/Data Type Conversion4' */
16424 L4_MABX_B.DataTypeConversion4 = L4_MABX_B.SPN529_EngineSpeedAtPoint3;
16425
16426 /* DataTypeConversion: '<S537>/Data Type Conversion' */
16427 L4_MABX_B.DataTypeConversion_a4 = L4_MABX_B.DataTypeConversion_j3[8];
16428
16429 /* Sum: '<S537>/Add' incorporates:
16430 * Constant: '<S537>/Constant'
16431 */
16432 L4_MABX_B.SPN541_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_a4 +
16433 L4_MABX_P.Constant_Value_er;
16434
16435 /* DataTypeConversion: '<S404>/Data Type Conversion5' */
16436 L4_MABX_B.DataTypeConversion5 = L4_MABX_B.SPN541_EnginePercentTorqueAtPoi;
16437
16438 /* DataTypeConversion: '<S538>/Data Type Conversion' */
16439 L4_MABX_B.DataTypeConversion_fw = L4_MABX_B.DataTypeConversion_j3[9];
16440
16441 /* DataTypeConversion: '<S538>/Data Type Conversion1' */
16442 L4_MABX_B.DataTypeConversion1_ij = L4_MABX_B.DataTypeConversion_j3[10];
16443
16444 /* ArithShift: '<S538>/Shift Arithmetic' */
16445 L4_MABX_B.ShiftArithmetic_i1 = (uint16_T)(L4_MABX_B.DataTypeConversion1_ij <<
16446 8);
16447
16448 /* S-Function (sfix_bitop): '<S550>/Operator' */
16449 L4_MABX_B.Operator_jp = (uint16_T)(L4_MABX_B.DataTypeConversion_fw |
16450 L4_MABX_B.ShiftArithmetic_i1);
16451
16452 /* DataTypeConversion: '<S550>/DataType' */
16453 L4_MABX_B.DataType_lu = L4_MABX_B.Operator_jp;
16454
16455 /* DataTypeConversion: '<S538>/Data Type Conversion2' */
16456 L4_MABX_B.DataTypeConversion2_j = L4_MABX_B.DataType_lu;
16457
16458 /* Product: '<S538>/Product' incorporates:
16459 * Constant: '<S538>/Constant'
16460 */
16461 L4_MABX_B.SPN530_EngineSpeedAtPoint4 = L4_MABX_B.DataTypeConversion2_j *
16462 L4_MABX_P.Constant_Value_j4;
16463
16464 /* DataTypeConversion: '<S404>/Data Type Conversion6' */
16465 L4_MABX_B.DataTypeConversion6 = L4_MABX_B.SPN530_EngineSpeedAtPoint4;
16466
16467 /* DataTypeConversion: '<S513>/Data Type Conversion' */
16468 L4_MABX_B.DataTypeConversion_d = L4_MABX_B.DataTypeConversion_j3[11];
16469
16470 /* Sum: '<S513>/Add' incorporates:
16471 * Constant: '<S513>/Constant'
16472 */
16473 L4_MABX_B.SPN542_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_d +
16474 L4_MABX_P.Constant_Value_j2;
16475
16476 /* DataTypeConversion: '<S404>/Data Type Conversion7' */
16477 L4_MABX_B.DataTypeConversion7 = L4_MABX_B.SPN542_EnginePercentTorqueAtPoi;
16478
16479 /* DataTypeConversion: '<S514>/Data Type Conversion' */
16480 L4_MABX_B.DataTypeConversion_e3 = L4_MABX_B.DataTypeConversion_j3[12];
16481
16482 /* DataTypeConversion: '<S514>/Data Type Conversion1' */
16483 L4_MABX_B.DataTypeConversion1_i5 = L4_MABX_B.DataTypeConversion_j3[13];
16484
16485 /* ArithShift: '<S514>/Shift Arithmetic' */
16486 L4_MABX_B.ShiftArithmetic_k = (uint16_T)(L4_MABX_B.DataTypeConversion1_i5 << 8);
16487
16488 /* S-Function (sfix_bitop): '<S540>/Operator' */
16489 L4_MABX_B.Operator_cl = (uint16_T)(L4_MABX_B.DataTypeConversion_e3 |
16490 L4_MABX_B.ShiftArithmetic_k);
16491
16492 /* DataTypeConversion: '<S540>/DataType' */
16493 L4_MABX_B.DataType_eb = L4_MABX_B.Operator_cl;
16494
16495 /* DataTypeConversion: '<S514>/Data Type Conversion2' */
16496 L4_MABX_B.DataTypeConversion2_c = L4_MABX_B.DataType_eb;
16497
16498 /* Product: '<S514>/Product' incorporates:
16499 * Constant: '<S514>/Constant'
16500 */
16501 L4_MABX_B.SPN531_EngineSpeedAtPoint5 = L4_MABX_B.DataTypeConversion2_c *
16502 L4_MABX_P.Constant_Value_m1;
16503
16504 /* DataTypeConversion: '<S404>/Data Type Conversion8' */
16505 L4_MABX_B.DataTypeConversion8 = L4_MABX_B.SPN531_EngineSpeedAtPoint5;
16506
16507 /* DataTypeConversion: '<S515>/Data Type Conversion' */
16508 L4_MABX_B.DataTypeConversion_p = L4_MABX_B.DataTypeConversion_j3[14];
16509
16510 /* Sum: '<S515>/Add' incorporates:
16511 * Constant: '<S515>/Constant'
16512 */
16513 L4_MABX_B.SPN543_EnginePercentTorqueAtPoi = L4_MABX_B.DataTypeConversion_p +
16514 L4_MABX_P.Constant_Value_ml;
16515
16516 /* DataTypeConversion: '<S404>/Data Type Conversion9' */
16517 L4_MABX_B.DataTypeConversion9 = L4_MABX_B.SPN543_EnginePercentTorqueAtPoi;
16518
16519 /* DataTypeConversion: '<S461>/Data Type Conversion8' */
16520 L4_MABX_B.RX_status_m = (L4_MABX_B.SFunction1_o9_e1 != 0.0);
16521
16522 /* MultiPortSwitch: '<S407>/Multiport_Switch' */
16523 L4_MABX_B.RX_status_f = L4_MABX_B.RX_status_m;
16524
16525 /* DataTypeConversion: '<S461>/Data Type Conversion9' */
16526 L4_MABX_B.RX_time = L4_MABX_B.SFunction1_o10_n;
16527
16528 /* MultiPortSwitch: '<S407>/Multiport_Switch' */
16529 L4_MABX_B.RX_time_e = L4_MABX_B.RX_time;
16530
16531 /* DataTypeConversion: '<S461>/Data Type Conversion10' */
16532 L4_MABX_B.RX_delta_time = L4_MABX_B.SFunction1_o11_pr;
16533
16534 /* MultiPortSwitch: '<S407>/Multiport_Switch' */
16535 L4_MABX_B.RX_delta_time_m = L4_MABX_B.RX_delta_time;
16536
16537 /* RelationalOperator: '<S465>/Operator' incorporates:
16538 * Constant: '<S407>/Constant'
16539 * Constant: '<S462>/Constant1'
16540 */
16541 L4_MABX_B.Operator_ib2 = (L4_MABX_P.Constant_Value_oo ==
16542 L4_MABX_P.Constant1_Value_py);
16543
16544 /* RelationalOperator: '<S466>/Operator' incorporates:
16545 * Constant: '<S407>/Constant'
16546 * Constant: '<S462>/Constant2'
16547 */
16548 L4_MABX_B.Operator_f1k = (L4_MABX_P.Constant_Value_oo ==
16549 L4_MABX_P.Constant2_Value_f);
16550
16551 /* RelationalOperator: '<S467>/Operator' incorporates:
16552 * Constant: '<S407>/Constant'
16553 * Constant: '<S462>/Constant3'
16554 */
16555 L4_MABX_B.Operator_cz = (L4_MABX_P.Constant_Value_oo ==
16556 L4_MABX_P.Constant3_Value_i);
16557
16558 /* RelationalOperator: '<S468>/Operator' incorporates:
16559 * Constant: '<S407>/Constant'
16560 * Constant: '<S462>/Constant4'
16561 */
16562 L4_MABX_B.Operator_i2 = (L4_MABX_P.Constant_Value_oo ==
16563 L4_MABX_P.Constant4_Value_a);
16564
16565 /* RelationalOperator: '<S469>/Operator' incorporates:
16566 * Constant: '<S407>/Constant'
16567 * Constant: '<S462>/Constant5'
16568 */
16569 L4_MABX_B.Operator_du = (L4_MABX_P.Constant_Value_oo ==
16570 L4_MABX_P.Constant5_Value_l);
16571
16572 /* DataTypeConversion: '<S470>/Data Type Conversion9' */
16573 L4_MABX_B.RX_time_k = L4_MABX_B.SFunction1_o10_o;
16574
16575 /* MultiPortSwitch: '<S408>/Multiport_Switch' */
16576 L4_MABX_B.RX_time_m = L4_MABX_B.RX_time_k;
16577
16578 /* DataTypeConversion: '<S470>/Data Type Conversion10' */
16579 L4_MABX_B.RX_delta_time_ms = L4_MABX_B.SFunction1_o11_p;
16580
16581 /* MultiPortSwitch: '<S408>/Multiport_Switch' */
16582 L4_MABX_B.RX_delta_time_e = L4_MABX_B.RX_delta_time_ms;
16583
16584 /* RelationalOperator: '<S474>/Operator' incorporates:
16585 * Constant: '<S408>/Constant'
16586 * Constant: '<S471>/Constant1'
16587 */
16588 L4_MABX_B.Operator_km = (L4_MABX_P.Constant_Value_b1 ==
16589 L4_MABX_P.Constant1_Value_nr);
16590
16591 /* RelationalOperator: '<S475>/Operator' incorporates:
16592 * Constant: '<S408>/Constant'
16593 * Constant: '<S471>/Constant2'
16594 */
16595 L4_MABX_B.Operator_kb = (L4_MABX_P.Constant_Value_b1 ==
16596 L4_MABX_P.Constant2_Value_e);
16597
16598 /* RelationalOperator: '<S476>/Operator' incorporates:
16599 * Constant: '<S408>/Constant'
16600 * Constant: '<S471>/Constant3'
16601 */
16602 L4_MABX_B.Operator_oj = (L4_MABX_P.Constant_Value_b1 ==
16603 L4_MABX_P.Constant3_Value_fk);
16604
16605 /* RelationalOperator: '<S477>/Operator' incorporates:
16606 * Constant: '<S408>/Constant'
16607 * Constant: '<S471>/Constant4'
16608 */
16609 L4_MABX_B.Operator_ce = (L4_MABX_P.Constant_Value_b1 ==
16610 L4_MABX_P.Constant4_Value_c);
16611
16612 /* RelationalOperator: '<S478>/Operator' incorporates:
16613 * Constant: '<S408>/Constant'
16614 * Constant: '<S471>/Constant5'
16615 */
16616 L4_MABX_B.Operator_b5 = (L4_MABX_P.Constant_Value_b1 ==
16617 L4_MABX_P.Constant5_Value_i1);
16618
16619 /* DataTypeConversion: '<S479>/Data Type Conversion1' */
16620 L4_MABX_B.SpeedOfForwardVehicle = L4_MABX_B.SFunction1_o1_du;
16621
16622 /* DataTypeConversion: '<S479>/Data Type Conversion10' */
16623 L4_MABX_B.RX_delta_time_l = L4_MABX_B.SFunction1_o13_e;
16624
16625 /* DataTypeConversion: '<S479>/Data Type Conversion11' */
16626 L4_MABX_B.ACCSystemShutoffWarning = L4_MABX_B.SFunction1_o8_gw;
16627
16628 /* DataTypeConversion: '<S479>/Data Type Conversion2' */
16629 L4_MABX_B.DistanceToForwardVehicle = L4_MABX_B.SFunction1_o2_kv;
16630
16631 /* DataTypeConversion: '<S479>/Data Type Conversion3' */
16632 L4_MABX_B.AdaptiveCruiseCtrlSetSpeed = L4_MABX_B.SFunction1_o3_bf;
16633
16634 /* DataTypeConversion: '<S479>/Data Type Conversion4' */
16635 L4_MABX_B.AdaptiveCruiseCtrlMode = L4_MABX_B.SFunction1_o4_fr;
16636
16637 /* DataTypeConversion: '<S479>/Data Type Conversion5' */
16638 L4_MABX_B.AdptveCruiseCtrlSetDistanceMode = L4_MABX_B.SFunction1_o5_jg;
16639
16640 /* DataTypeConversion: '<S479>/Data Type Conversion6' */
16641 L4_MABX_B.RoadCurvature = L4_MABX_B.SFunction1_o6_fw;
16642
16643 /* DataTypeConversion: '<S479>/Data Type Conversion7' */
16644 L4_MABX_B.ACCTargetDetected = L4_MABX_B.SFunction1_o7_p;
16645
16646 /* DataTypeConversion: '<S479>/Data Type Conversion8' */
16647 L4_MABX_B.RX_status_i1 = (L4_MABX_B.SFunction1_o11_hg != 0.0);
16648
16649 /* DataTypeConversion: '<S479>/Data Type Conversion9' */
16650 L4_MABX_B.RX_time_p = L4_MABX_B.SFunction1_o12_b;
16651
16652 /* Outputs for Enabled SubSystem: '<S481>/AEBS1_A0' incorporates:
16653 * EnablePort: '<S482>/Enable'
16654 */
16655 /* Constant: '<S410>/Constant' */
16656 if (L4_MABX_P.Constant_Value_ip) {
16657 /* S-Function (rti_commonblock): '<S482>/S-Function1' */
16658 /* This comment workarounds a code generation problem */
16659
16660 /* dSPACE RTICAN RX Message Block: "AEBS1_A0" Id:217067306 */
16661 {
16662 UInt32 *CAN_Msg;
16663 static dsfloat time_old = 0.0;
16664
16665 /* Read status and timestamp info (previous message) */
16666 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].timestamp !=
16667 time_old) {
16668 /* ... save timestamp info for the calculation of the RX status
16669 during the consecutive sample hit*/
16670 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].
16671 timestamp;
16672
16673 /* ... set the processed flag to one */
16674 L4_MABX_B.SFunction1_o6_lf = 1.0;
16675 L4_MABX_B.SFunction1_o7_n4 = (real_T)
16676 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].timestamp;
16677 L4_MABX_B.SFunction1_o8_c = (real_T)
16678 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].deltatime;
16679 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0xCF02F2A].data;
16680
16681 /* Decode CAN message */
16682 {
16683 {
16684 rtican_Signal_t CAN_Sgn;
16685
16686 /* ...... "AdvEmergencyBrkSysState" (0|4, standard signal, unsigned int, little endian) */
16687 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16688 CAN_Sgn.UnsignedSgn &= 0x0000000F;
16689 L4_MABX_B.SFunction1_o1_cj = ((real_T) CAN_Sgn.UnsignedSgn);
16690
16691 /* ...... "CollisionWarningLevel" (4|4, standard signal, unsigned int, little endian) */
16692 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16693 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
16694 CAN_Sgn.UnsignedSgn &= 0x0000000F;
16695 L4_MABX_B.SFunction1_o2_gf = ((real_T) CAN_Sgn.UnsignedSgn);
16696
16697 /* ...... "RelObjctDetForAdvEmergBrakingSys" (8|3, standard signal, unsigned int, little endian) */
16698 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
16699 CAN_Sgn.UnsignedSgn &= 0x00000007;
16700 L4_MABX_B.SFunction1_o3_bn = ((real_T) CAN_Sgn.UnsignedSgn);
16701
16702 /* ...... "BendOffProbabOfRelevantObject" (12|3, standard signal, unsigned int, little endian) */
16703 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
16704 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
16705 CAN_Sgn.UnsignedSgn &= 0x00000007;
16706 L4_MABX_B.SFunction1_o4_ey = ((real_T) CAN_Sgn.UnsignedSgn);
16707
16708 /* ...... "TimeToCollisionWithRelevantObj" (16|8, standard signal, unsigned int, little endian) */
16709 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
16710 CAN_Sgn.UnsignedSgn &= 0x000000FF;
16711 L4_MABX_B.SFunction1_o5_os = ((real_T) CAN_Sgn.UnsignedSgn);
16712 }
16713 }
16714 } else {
16715 /* set RX status to 0 because no new message has arrived */
16716 L4_MABX_B.SFunction1_o6_lf = 0.0;
16717 }
16718 }
16719 }
16720
16721 /* End of Constant: '<S410>/Constant' */
16722 /* End of Outputs for SubSystem: '<S481>/AEBS1_A0' */
16723
16724 /* DataTypeConversion: '<S481>/Data Type Conversion10' */
16725 L4_MABX_B.RX_delta_time_h = L4_MABX_B.SFunction1_o8_c;
16726
16727 /* DataTypeConversion: '<S481>/Data Type Conversion8' */
16728 L4_MABX_B.RX_status_fv = (L4_MABX_B.SFunction1_o6_lf != 0.0);
16729
16730 /* DataTypeConversion: '<S481>/Data Type Conversion9' */
16731 L4_MABX_B.RX_time_l = L4_MABX_B.SFunction1_o7_n4;
16732
16733 /* DataTypeConversion: '<S483>/Data Type Conversion10' */
16734 L4_MABX_B.RX_delta_time_k = L4_MABX_B.SFunction1_o11_h;
16735
16736 /* DataTypeConversion: '<S483>/Data Type Conversion8' */
16737 L4_MABX_B.RX_status_c = (L4_MABX_B.SFunction1_o9_ft != 0.0);
16738
16739 /* DataTypeConversion: '<S483>/Data Type Conversion9' */
16740 L4_MABX_B.RX_time_n = L4_MABX_B.SFunction1_o10_fb;
16741
16742 /* DataTypeConversion: '<S485>/Data Type Conversion10' */
16743 L4_MABX_B.RX_delta_time_j = L4_MABX_B.SFunction1_o8_bj;
16744
16745 /* DataTypeConversion: '<S485>/Data Type Conversion8' */
16746 L4_MABX_B.RX_status_gc = (L4_MABX_B.SFunction1_o6_fk != 0.0);
16747
16748 /* DataTypeConversion: '<S485>/Data Type Conversion9' */
16749 L4_MABX_B.RX_time_a = L4_MABX_B.SFunction1_o7_kx;
16750
16751 /* Outputs for Enabled SubSystem: '<S487>/B2' incorporates:
16752 * EnablePort: '<S488>/Enable'
16753 */
16754 /* Constant: '<S413>/Constant' */
16755 if (L4_MABX_P.Constant_Value_ev > 0.0) {
16756 /* S-Function (rti_commonblock): '<S488>/S-Function1' */
16757 /* This comment workarounds a code generation problem */
16758
16759 /* dSPACE RTICAN RX Message Block: "B2" Id:418451505 */
16760 {
16761 UInt32 *CAN_Msg;
16762 static dsfloat time_old = 0.0;
16763
16764 /* Read status and timestamp info (previous message) */
16765 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].timestamp !=
16766 time_old) {
16767 /* ... save timestamp info for the calculation of the RX status
16768 during the consecutive sample hit*/
16769 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].
16770 timestamp;
16771
16772 /* ... set the processed flag to one */
16773 L4_MABX_B.SFunction1_o3_bi = 1.0;
16774 L4_MABX_B.SFunction1_o4_hn = (real_T)
16775 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].timestamp;
16776 L4_MABX_B.SFunction1_o5_bt = (real_T)
16777 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].deltatime;
16778 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F11031].data;
16779
16780 /* Decode CAN message */
16781 {
16782 {
16783 rtican_Signal_t CAN_Sgn;
16784
16785 /* ...... "BrakeAppPressDemanded" (0|16, standard signal, unsigned int, little endian) */
16786 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16787 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
16788 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
16789 L4_MABX_B.SFunction1_o1_jm = 0.1 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
16790
16791 /* ...... "BrakeSwitch2" (16|2, standard signal, unsigned int, little endian) */
16792 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
16793 CAN_Sgn.UnsignedSgn &= 0x00000003;
16794 L4_MABX_B.SFunction1_o2_ii = ((real_T) CAN_Sgn.UnsignedSgn);
16795 }
16796 }
16797 } else {
16798 /* set RX status to 0 because no new message has arrived */
16799 L4_MABX_B.SFunction1_o3_bi = 0.0;
16800 }
16801 }
16802 }
16803
16804 /* End of Constant: '<S413>/Constant' */
16805 /* End of Outputs for SubSystem: '<S487>/B2' */
16806
16807 /* DataTypeConversion: '<S487>/Data Type Conversion10' */
16808 L4_MABX_B.RX_delta_time_c = L4_MABX_B.SFunction1_o5_bt;
16809
16810 /* DataTypeConversion: '<S487>/Data Type Conversion8' */
16811 L4_MABX_B.RX_status_d = (L4_MABX_B.SFunction1_o3_bi != 0.0);
16812
16813 /* DataTypeConversion: '<S487>/Data Type Conversion9' */
16814 L4_MABX_B.RX_time_f = L4_MABX_B.SFunction1_o4_hn;
16815
16816 /* Outputs for Enabled SubSystem: '<S489>/Tracks' incorporates:
16817 * EnablePort: '<S490>/Enable'
16818 */
16819 /* Constant: '<S414>/Constant' */
16820 if (L4_MABX_P.Constant_Value_ga) {
16821 /* S-Function (rti_commonblock): '<S490>/S-Function1' */
16822 /* This comment workarounds a code generation problem */
16823
16824 /* dSPACE RTICAN RX Message Block: "Tracks" Id:1635 */
16825 {
16826 UInt32 *CAN_Msg;
16827 static dsfloat time_old = 0.0;
16828
16829 /* Read status and timestamp info (previous message) */
16830 if (can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].timestamp !=
16831 time_old) {
16832 /* ... save timestamp info for the calculation of the RX status
16833 during the consecutive sample hit*/
16834 time_old = can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].timestamp;
16835
16836 /* ... set the processed flag to one */
16837 L4_MABX_B.SFunction1_o72 = 1.0;
16838 L4_MABX_B.SFunction1_o73 = (real_T)
16839 can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].timestamp;
16840 L4_MABX_B.SFunction1_o74 = (real_T)
16841 can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].deltatime;
16842 CAN_Msg = can_type1_M2_C1_STD[CANTP1_M2_C1_RXSRVC_STD_0x663].data;
16843
16844 /* Decode CAN message */
16845 {
16846 {
16847 rtican_Signal_t CAN_Sgn;
16848 UInt32 modeSignal;
16849
16850 /* ...... "track_multiplexor" (56|8, mode signal, unsigned int, motorola back.) */
16851 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
16852 CAN_Sgn.UnsignedSgn &= 0x000000FF;
16853 L4_MABX_B.SFunction1_o71 = ((real_T) CAN_Sgn.UnsignedSgn);
16854 modeSignal = (UInt32) L4_MABX_B.SFunction1_o71;
16855 if (modeSignal == 4) {
16856 /* ...... "tr0_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16857 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16858 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16859 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16860 L4_MABX_B.SFunction1_o1_ow = ((real_T) CAN_Sgn.UnsignedSgn);
16861 }
16862
16863 if (modeSignal == 5) {
16864 /* ...... "tr0_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16865 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16866 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16867 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16868 if (CAN_Sgn.SignedSgn >> 15) {
16869 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16870 }
16871
16872 L4_MABX_B.SFunction1_o2_bma = 0.001 * ( ((real_T)
16873 CAN_Sgn.SignedSgn) );
16874 }
16875
16876 if (modeSignal == 12) {
16877 /* ...... "tr1_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16878 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16879 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16880 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16881 L4_MABX_B.SFunction1_o3_gs = ((real_T) CAN_Sgn.UnsignedSgn);
16882 }
16883
16884 if (modeSignal == 13) {
16885 /* ...... "tr1_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16886 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16887 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16888 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16889 if (CAN_Sgn.SignedSgn >> 15) {
16890 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16891 }
16892
16893 L4_MABX_B.SFunction1_o4_nf = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
16894 );
16895 }
16896
16897 if (modeSignal == 20) {
16898 /* ...... "tr2_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16899 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16900 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16901 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16902 L4_MABX_B.SFunction1_o5_mm = ((real_T) CAN_Sgn.UnsignedSgn);
16903 }
16904
16905 if (modeSignal == 21) {
16906 /* ...... "tr2_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16907 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16908 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16909 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16910 if (CAN_Sgn.SignedSgn >> 15) {
16911 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16912 }
16913
16914 L4_MABX_B.SFunction1_o6_ci = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
16915 );
16916 }
16917
16918 if (modeSignal == 28) {
16919 /* ...... "tr3_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16920 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16921 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16922 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16923 L4_MABX_B.SFunction1_o7_ds = ((real_T) CAN_Sgn.UnsignedSgn);
16924 }
16925
16926 if (modeSignal == 29) {
16927 /* ...... "tr3_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16928 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16929 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16930 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16931 if (CAN_Sgn.SignedSgn >> 15) {
16932 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16933 }
16934
16935 L4_MABX_B.SFunction1_o8_n = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
16936 );
16937 }
16938
16939 if (modeSignal == 36) {
16940 /* ...... "tr4_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16941 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16942 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16943 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16944 L4_MABX_B.SFunction1_o9_iv = ((real_T) CAN_Sgn.UnsignedSgn);
16945 }
16946
16947 if (modeSignal == 37) {
16948 /* ...... "tr4_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16949 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16950 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16951 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16952 if (CAN_Sgn.SignedSgn >> 15) {
16953 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16954 }
16955
16956 L4_MABX_B.SFunction1_o10_fp = 0.001 * ( ((real_T)
16957 CAN_Sgn.SignedSgn) );
16958 }
16959
16960 if (modeSignal == 44) {
16961 /* ...... "tr5_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16962 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16963 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16964 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16965 L4_MABX_B.SFunction1_o11_k = ((real_T) CAN_Sgn.UnsignedSgn);
16966 }
16967
16968 if (modeSignal == 45) {
16969 /* ...... "tr5_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16970 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16971 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16972 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16973 if (CAN_Sgn.SignedSgn >> 15) {
16974 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16975 }
16976
16977 L4_MABX_B.SFunction1_o12_a = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
16978 );
16979 }
16980
16981 if (modeSignal == 52) {
16982 /* ...... "tr6_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
16983 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16984 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16985 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
16986 L4_MABX_B.SFunction1_o13_g = ((real_T) CAN_Sgn.UnsignedSgn);
16987 }
16988
16989 if (modeSignal == 53) {
16990 /* ...... "tr6_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
16991 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
16992 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
16993 CAN_Sgn.SignedSgn &= 0x0000FFFF;
16994 if (CAN_Sgn.SignedSgn >> 15) {
16995 CAN_Sgn.SignedSgn |= 0xFFFF0000;
16996 }
16997
16998 L4_MABX_B.SFunction1_o14_k = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
16999 );
17000 }
17001
17002 if (modeSignal == 60) {
17003 /* ...... "tr7_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17004 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17005 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17006 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17007 L4_MABX_B.SFunction1_o15_il = ((real_T) CAN_Sgn.UnsignedSgn);
17008 }
17009
17010 if (modeSignal == 61) {
17011 /* ...... "tr7_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17012 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17013 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17014 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17015 if (CAN_Sgn.SignedSgn >> 15) {
17016 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17017 }
17018
17019 L4_MABX_B.SFunction1_o16_cg = 0.001 * ( ((real_T)
17020 CAN_Sgn.SignedSgn) );
17021 }
17022
17023 if (modeSignal == 68) {
17024 /* ...... "tr8_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17025 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17026 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17027 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17028 L4_MABX_B.SFunction1_o17_l1 = ((real_T) CAN_Sgn.UnsignedSgn);
17029 }
17030
17031 if (modeSignal == 69) {
17032 /* ...... "tr8_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17033 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17034 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17035 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17036 if (CAN_Sgn.SignedSgn >> 15) {
17037 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17038 }
17039
17040 L4_MABX_B.SFunction1_o18_a = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17041 );
17042 }
17043
17044 if (modeSignal == 76) {
17045 /* ...... "tr9_track_selection_status" (0|13, mode-dependent signal, unsigned int, motorola back.) */
17046 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17047 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17048 CAN_Sgn.UnsignedSgn &= 0x00001FFF;
17049 L4_MABX_B.SFunction1_o19_l = ((real_T) CAN_Sgn.UnsignedSgn);
17050 }
17051
17052 if (modeSignal == 77) {
17053 /* ...... "tr9_corrected_lateral_distance" (0|16, mode-dependent signal, signed int, motorola back.) */
17054 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17055 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[6];
17056 CAN_Sgn.SignedSgn &= 0x0000FFFF;
17057 if (CAN_Sgn.SignedSgn >> 15) {
17058 CAN_Sgn.SignedSgn |= 0xFFFF0000;
17059 }
17060
17061 L4_MABX_B.SFunction1_o20_i = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn)
17062 );
17063 }
17064
17065 if (modeSignal == 6) {
17066 /* ...... "tr0_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17067 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17068 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17069 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17070 CAN_Sgn.SignedSgn &= 0x000003FF;
17071 if (CAN_Sgn.SignedSgn >> 9) {
17072 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17073 }
17074
17075 L4_MABX_B.SFunction1_o21_d4 = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn)
17076 );
17077 }
17078
17079 if (modeSignal == 14) {
17080 /* ...... "tr1_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17081 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17082 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17083 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17084 CAN_Sgn.SignedSgn &= 0x000003FF;
17085 if (CAN_Sgn.SignedSgn >> 9) {
17086 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17087 }
17088
17089 L4_MABX_B.SFunction1_o22_j1 = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn)
17090 );
17091 }
17092
17093 if (modeSignal == 22) {
17094 /* ...... "tr2_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17095 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17096 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17097 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17098 CAN_Sgn.SignedSgn &= 0x000003FF;
17099 if (CAN_Sgn.SignedSgn >> 9) {
17100 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17101 }
17102
17103 L4_MABX_B.SFunction1_o23_o = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17104 }
17105
17106 if (modeSignal == 30) {
17107 /* ...... "tr3_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17108 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17109 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17110 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17111 CAN_Sgn.SignedSgn &= 0x000003FF;
17112 if (CAN_Sgn.SignedSgn >> 9) {
17113 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17114 }
17115
17116 L4_MABX_B.SFunction1_o24_g = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17117 }
17118
17119 if (modeSignal == 38) {
17120 /* ...... "tr4_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17121 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17122 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17123 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17124 CAN_Sgn.SignedSgn &= 0x000003FF;
17125 if (CAN_Sgn.SignedSgn >> 9) {
17126 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17127 }
17128
17129 L4_MABX_B.SFunction1_o25_g = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17130 }
17131
17132 if (modeSignal == 46) {
17133 /* ...... "tr5_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17134 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17135 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17136 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17137 CAN_Sgn.SignedSgn &= 0x000003FF;
17138 if (CAN_Sgn.SignedSgn >> 9) {
17139 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17140 }
17141
17142 L4_MABX_B.SFunction1_o26_o = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17143 }
17144
17145 if (modeSignal == 54) {
17146 /* ...... "tr6_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17147 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17148 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17149 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17150 CAN_Sgn.SignedSgn &= 0x000003FF;
17151 if (CAN_Sgn.SignedSgn >> 9) {
17152 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17153 }
17154
17155 L4_MABX_B.SFunction1_o27_b = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17156 }
17157
17158 if (modeSignal == 62) {
17159 /* ...... "tr7_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17160 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17161 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17162 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17163 CAN_Sgn.SignedSgn &= 0x000003FF;
17164 if (CAN_Sgn.SignedSgn >> 9) {
17165 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17166 }
17167
17168 L4_MABX_B.SFunction1_o28_h = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17169 }
17170
17171 if (modeSignal == 70) {
17172 /* ...... "tr8_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17173 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17174 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17175 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17176 CAN_Sgn.SignedSgn &= 0x000003FF;
17177 if (CAN_Sgn.SignedSgn >> 9) {
17178 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17179 }
17180
17181 L4_MABX_B.SFunction1_o29 = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17182 }
17183
17184 if (modeSignal == 78) {
17185 /* ...... "tr9_lateral_position" (14|10, mode-dependent signal, signed int, motorola back.) */
17186 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17187 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
17188 CAN_Sgn.SignedSgn = ((UInt32)CAN_Sgn.SignedSgn) >> 6;
17189 CAN_Sgn.SignedSgn &= 0x000003FF;
17190 if (CAN_Sgn.SignedSgn >> 9) {
17191 CAN_Sgn.SignedSgn |= 0xFFFFFC00;
17192 }
17193
17194 L4_MABX_B.SFunction1_o30 = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
17195 }
17196
17197 if (modeSignal == 4) {
17198 /* ...... "tr0_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17199 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17200 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17201 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17202 L4_MABX_B.SFunction1_o31 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17203 );
17204 }
17205
17206 if (modeSignal == 12) {
17207 /* ...... "tr1_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17208 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17209 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17210 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17211 L4_MABX_B.SFunction1_o32 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17212 );
17213 }
17214
17215 if (modeSignal == 20) {
17216 /* ...... "tr2_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17217 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17218 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17219 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17220 L4_MABX_B.SFunction1_o33 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17221 );
17222 }
17223
17224 if (modeSignal == 28) {
17225 /* ...... "tr3_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17226 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17227 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17228 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17229 L4_MABX_B.SFunction1_o34 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17230 );
17231 }
17232
17233 if (modeSignal == 36) {
17234 /* ...... "tr4_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17235 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17236 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17237 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17238 L4_MABX_B.SFunction1_o35 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17239 );
17240 }
17241
17242 if (modeSignal == 44) {
17243 /* ...... "tr5_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17244 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17245 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17246 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17247 L4_MABX_B.SFunction1_o36 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17248 );
17249 }
17250
17251 if (modeSignal == 52) {
17252 /* ...... "tr6_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17253 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17254 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17255 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17256 L4_MABX_B.SFunction1_o37 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17257 );
17258 }
17259
17260 if (modeSignal == 60) {
17261 /* ...... "tr7_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17262 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17263 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17264 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17265 L4_MABX_B.SFunction1_o38 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17266 );
17267 }
17268
17269 if (modeSignal == 68) {
17270 /* ...... "tr8_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17271 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17272 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17273 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17274 L4_MABX_B.SFunction1_o39 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17275 );
17276 }
17277
17278 if (modeSignal == 76) {
17279 /* ...... "tr9_range" (16|16, mode-dependent signal, unsigned int, motorola back.) */
17280 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17281 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
17282 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
17283 L4_MABX_B.SFunction1_o40 = 0.01 * ( ((real_T) CAN_Sgn.UnsignedSgn)
17284 );
17285 }
17286
17287 if (modeSignal == 6) {
17288 /* ...... "tr0_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17289 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17290 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17291 L4_MABX_B.SFunction1_o41 = 0.00392156862745098 * ( ((real_T)
17292 CAN_Sgn.UnsignedSgn) );
17293 }
17294
17295 if (modeSignal == 14) {
17296 /* ...... "tr1_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17297 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17298 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17299 L4_MABX_B.SFunction1_o42 = 0.00392156862745098 * ( ((real_T)
17300 CAN_Sgn.UnsignedSgn) );
17301 }
17302
17303 if (modeSignal == 22) {
17304 /* ...... "tr2_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17305 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17306 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17307 L4_MABX_B.SFunction1_o43 = 0.00392156862745098 * ( ((real_T)
17308 CAN_Sgn.UnsignedSgn) );
17309 }
17310
17311 if (modeSignal == 30) {
17312 /* ...... "tr3_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17313 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17314 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17315 L4_MABX_B.SFunction1_o44 = 0.00392156862745098 * ( ((real_T)
17316 CAN_Sgn.UnsignedSgn) );
17317 }
17318
17319 if (modeSignal == 38) {
17320 /* ...... "tr4_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17321 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17322 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17323 L4_MABX_B.SFunction1_o45 = 0.00392156862745098 * ( ((real_T)
17324 CAN_Sgn.UnsignedSgn) );
17325 }
17326
17327 if (modeSignal == 46) {
17328 /* ...... "tr5_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17329 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17330 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17331 L4_MABX_B.SFunction1_o46 = 0.00392156862745098 * ( ((real_T)
17332 CAN_Sgn.UnsignedSgn) );
17333 }
17334
17335 if (modeSignal == 54) {
17336 /* ...... "tr6_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17337 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17338 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17339 L4_MABX_B.SFunction1_o47 = 0.00392156862745098 * ( ((real_T)
17340 CAN_Sgn.UnsignedSgn) );
17341 }
17342
17343 if (modeSignal == 62) {
17344 /* ...... "tr7_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17345 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17346 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17347 L4_MABX_B.SFunction1_o48 = 0.00392156862745098 * ( ((real_T)
17348 CAN_Sgn.UnsignedSgn) );
17349 }
17350
17351 if (modeSignal == 70) {
17352 /* ...... "tr8_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17353 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17354 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17355 L4_MABX_B.SFunction1_o49 = 0.00392156862745098 * ( ((real_T)
17356 CAN_Sgn.UnsignedSgn) );
17357 }
17358
17359 if (modeSignal == 78) {
17360 /* ...... "tr9_radar_confidence" (24|8, mode-dependent signal, unsigned int, motorola back.) */
17361 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17362 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17363 L4_MABX_B.SFunction1_o50 = 0.00392156862745098 * ( ((real_T)
17364 CAN_Sgn.UnsignedSgn) );
17365 }
17366
17367 if (modeSignal == 4) {
17368 /* ...... "tr0_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17369 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17370 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17371 CAN_Sgn.SignedSgn &= 0x00003FFF;
17372 if (CAN_Sgn.SignedSgn >> 13) {
17373 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17374 }
17375
17376 L4_MABX_B.SFunction1_o51 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17377 }
17378
17379 if (modeSignal == 5) {
17380 /* ...... "tr0_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17381 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17382 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17383 L4_MABX_B.SFunction1_o52 = -8.8 + ( 0.05 * ( ((real_T)
17384 CAN_Sgn.UnsignedSgn) ) );
17385 }
17386
17387 if (modeSignal == 12) {
17388 /* ...... "tr1_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17389 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17390 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17391 CAN_Sgn.SignedSgn &= 0x00003FFF;
17392 if (CAN_Sgn.SignedSgn >> 13) {
17393 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17394 }
17395
17396 L4_MABX_B.SFunction1_o53 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17397 }
17398
17399 if (modeSignal == 13) {
17400 /* ...... "tr1_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17401 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17402 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17403 L4_MABX_B.SFunction1_o54 = -8.8 + ( 0.05 * ( ((real_T)
17404 CAN_Sgn.UnsignedSgn) ) );
17405 }
17406
17407 if (modeSignal == 20) {
17408 /* ...... "tr2_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17409 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17410 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17411 CAN_Sgn.SignedSgn &= 0x00003FFF;
17412 if (CAN_Sgn.SignedSgn >> 13) {
17413 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17414 }
17415
17416 L4_MABX_B.SFunction1_o55 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17417 }
17418
17419 if (modeSignal == 21) {
17420 /* ...... "tr2_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17421 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17422 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17423 L4_MABX_B.SFunction1_o56 = -8.8 + ( 0.05 * ( ((real_T)
17424 CAN_Sgn.UnsignedSgn) ) );
17425 }
17426
17427 if (modeSignal == 28) {
17428 /* ...... "tr3_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17429 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17430 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17431 CAN_Sgn.SignedSgn &= 0x00003FFF;
17432 if (CAN_Sgn.SignedSgn >> 13) {
17433 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17434 }
17435
17436 L4_MABX_B.SFunction1_o57 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17437 }
17438
17439 if (modeSignal == 29) {
17440 /* ...... "tr3_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17441 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17442 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17443 L4_MABX_B.SFunction1_o58 = -8.8 + ( 0.05 * ( ((real_T)
17444 CAN_Sgn.UnsignedSgn) ) );
17445 }
17446
17447 if (modeSignal == 36) {
17448 /* ...... "tr4_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17449 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17450 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17451 CAN_Sgn.SignedSgn &= 0x00003FFF;
17452 if (CAN_Sgn.SignedSgn >> 13) {
17453 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17454 }
17455
17456 L4_MABX_B.SFunction1_o59 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17457 }
17458
17459 if (modeSignal == 37) {
17460 /* ...... "tr4_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17461 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17462 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17463 L4_MABX_B.SFunction1_o60 = -8.8 + ( 0.05 * ( ((real_T)
17464 CAN_Sgn.UnsignedSgn) ) );
17465 }
17466
17467 if (modeSignal == 44) {
17468 /* ...... "tr5_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17469 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17470 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17471 CAN_Sgn.SignedSgn &= 0x00003FFF;
17472 if (CAN_Sgn.SignedSgn >> 13) {
17473 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17474 }
17475
17476 L4_MABX_B.SFunction1_o61 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17477 }
17478
17479 if (modeSignal == 45) {
17480 /* ...... "tr5_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17481 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17482 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17483 L4_MABX_B.SFunction1_o62 = -8.8 + ( 0.05 * ( ((real_T)
17484 CAN_Sgn.UnsignedSgn) ) );
17485 }
17486
17487 if (modeSignal == 52) {
17488 /* ...... "tr6_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17489 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17490 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17491 CAN_Sgn.SignedSgn &= 0x00003FFF;
17492 if (CAN_Sgn.SignedSgn >> 13) {
17493 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17494 }
17495
17496 L4_MABX_B.SFunction1_o63 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17497 }
17498
17499 if (modeSignal == 53) {
17500 /* ...... "tr6_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17501 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17502 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17503 L4_MABX_B.SFunction1_o64 = -8.8 + ( 0.05 * ( ((real_T)
17504 CAN_Sgn.UnsignedSgn) ) );
17505 }
17506
17507 if (modeSignal == 60) {
17508 /* ...... "tr7_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17509 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17510 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17511 CAN_Sgn.SignedSgn &= 0x00003FFF;
17512 if (CAN_Sgn.SignedSgn >> 13) {
17513 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17514 }
17515
17516 L4_MABX_B.SFunction1_o65 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17517 }
17518
17519 if (modeSignal == 61) {
17520 /* ...... "tr7_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17521 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17522 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17523 L4_MABX_B.SFunction1_o66 = -8.8 + ( 0.05 * ( ((real_T)
17524 CAN_Sgn.UnsignedSgn) ) );
17525 }
17526
17527 if (modeSignal == 68) {
17528 /* ...... "tr8_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17529 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17530 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17531 CAN_Sgn.SignedSgn &= 0x00003FFF;
17532 if (CAN_Sgn.SignedSgn >> 13) {
17533 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17534 }
17535
17536 L4_MABX_B.SFunction1_o67 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17537 }
17538
17539 if (modeSignal == 69) {
17540 /* ...... "tr8_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17541 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17542 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17543 L4_MABX_B.SFunction1_o68 = -8.8 + ( 0.05 * ( ((real_T)
17544 CAN_Sgn.UnsignedSgn) ) );
17545 }
17546
17547 if (modeSignal == 76) {
17548 /* ...... "tr9_relative_velocitiy" (32|14, mode-dependent signal, signed int, motorola back.) */
17549 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17550 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[2];
17551 CAN_Sgn.SignedSgn &= 0x00003FFF;
17552 if (CAN_Sgn.SignedSgn >> 13) {
17553 CAN_Sgn.SignedSgn |= 0xFFFFC000;
17554 }
17555
17556 L4_MABX_B.SFunction1_o69 = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
17557 }
17558
17559 if (modeSignal == 77) {
17560 /* ...... "tr9_acceleration_over_ground" (32|8, mode-dependent signal, unsigned int, motorola back.) */
17561 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17562 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17563 L4_MABX_B.SFunction1_o70 = -8.8 + ( 0.05 * ( ((real_T)
17564 CAN_Sgn.UnsignedSgn) ) );
17565 }
17566 }
17567 }
17568 } else {
17569 /* set RX status to 0 because no new message has arrived */
17570 L4_MABX_B.SFunction1_o72 = 0.0;
17571 }
17572 }
17573 }
17574
17575 /* End of Constant: '<S414>/Constant' */
17576 /* End of Outputs for SubSystem: '<S489>/Tracks' */
17577
17578 /* DataTypeConversion: '<S489>/Data Type Conversion10' */
17579 L4_MABX_B.Bendix_RADAR_Tracks_RX_delta_ti = L4_MABX_B.SFunction1_o74;
17580
17581 /* DataTypeConversion: '<S489>/Data Type Conversion8' */
17582 L4_MABX_B.Bendix_RADAR_Tracks_RX_status = (L4_MABX_B.SFunction1_o72 != 0.0);
17583
17584 /* DataTypeConversion: '<S489>/Data Type Conversion9' */
17585 L4_MABX_B.Bendix_RADAR_Tracks_RX_time = L4_MABX_B.SFunction1_o73;
17586
17587 /* DataTypeConversion: '<S491>/Data Type Conversion10' */
17588 L4_MABX_B.RX_delta_time_hu = L4_MABX_B.SFunction1_o23_n;
17589
17590 /* DataTypeConversion: '<S491>/Data Type Conversion8' */
17591 L4_MABX_B.RX_status_n = (L4_MABX_B.SFunction1_o21_n != 0.0);
17592
17593 /* DataTypeConversion: '<S491>/Data Type Conversion9' */
17594 L4_MABX_B.RX_time_i = L4_MABX_B.SFunction1_o22_a;
17595
17596 /* DataTypeConversion: '<S493>/Data Type Conversion10' */
17597 L4_MABX_B.RX_delta_time_b = L4_MABX_B.SFunction1_o23_k;
17598
17599 /* DataTypeConversion: '<S493>/Data Type Conversion8' */
17600 L4_MABX_B.RX_status_fy = (L4_MABX_B.SFunction1_o21_d != 0.0);
17601
17602 /* DataTypeConversion: '<S493>/Data Type Conversion9' */
17603 L4_MABX_B.RX_time_mf = L4_MABX_B.SFunction1_o22_l;
17604
17605 /* Switch: '<S495>/Switch' */
17606 if (L4_MABX_B.RX_status_g) {
17607 L4_MABX_B.RX_status_mo = L4_MABX_B.RX_status_g;
17608 } else {
17609 /* DataTypeConversion: '<S495>/Data Type Conversion1' */
17610 L4_MABX_B.RX_status_js = (L4_MABX_B.SFunction1_o5_hd != 0.0);
17611 L4_MABX_B.RX_status_mo = L4_MABX_B.RX_status_js;
17612 }
17613
17614 if (L4_MABX_B.RX_status_g) {
17615 /* DataTypeConversion: '<S495>/Data Type Conversion9' */
17616 L4_MABX_B.RX_time_nf = L4_MABX_B.SFunction1_o6_fh;
17617 L4_MABX_B.RX_time_d = L4_MABX_B.RX_time_nf;
17618
17619 /* DataTypeConversion: '<S495>/Data Type Conversion10' */
17620 L4_MABX_B.RX_delta_time_p = L4_MABX_B.SFunction1_o7_a;
17621 L4_MABX_B.RX_delta_time_n = L4_MABX_B.RX_delta_time_p;
17622 } else {
17623 /* DataTypeConversion: '<S495>/Data Type Conversion2' */
17624 L4_MABX_B.RX_time_aa = L4_MABX_B.SFunction1_o6_est;
17625 L4_MABX_B.RX_time_d = L4_MABX_B.RX_time_aa;
17626
17627 /* DataTypeConversion: '<S495>/Data Type Conversion3' */
17628 L4_MABX_B.RX_delta_time_mt = L4_MABX_B.SFunction1_o7_m;
17629 L4_MABX_B.RX_delta_time_n = L4_MABX_B.RX_delta_time_mt;
17630 }
17631
17632 /* DataTypeConversion: '<S498>/Data Type Conversion10' */
17633 L4_MABX_B.RX_delta_time_ee = L4_MABX_B.SFunction1_o4_o1;
17634
17635 /* DataTypeConversion: '<S498>/Data Type Conversion8' */
17636 L4_MABX_B.RX_status_b = (L4_MABX_B.SFunction1_o2_kwd != 0.0);
17637
17638 /* DataTypeConversion: '<S498>/Data Type Conversion9' */
17639 L4_MABX_B.RX_time_m0 = L4_MABX_B.SFunction1_o3_lv;
17640
17641 /* Outputs for Enabled SubSystem: '<S500>/EBC1_0B' incorporates:
17642 * EnablePort: '<S501>/Enable'
17643 */
17644 /* Constant: '<S419>/Constant1' */
17645 if (L4_MABX_P.Constant1_Value_hf) {
17646 /* S-Function (rti_commonblock): '<S501>/S-Function1' */
17647 /* This comment workarounds a code generation problem */
17648
17649 /* dSPACE RTICAN RX Message Block: "EBC1_0B" Id:418382091 */
17650 {
17651 UInt32 *CAN_Msg;
17652 static dsfloat time_old = 0.0;
17653
17654 /* Read status and timestamp info (previous message) */
17655 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].timestamp !=
17656 time_old) {
17657 /* ... save timestamp info for the calculation of the RX status
17658 during the consecutive sample hit*/
17659 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].
17660 timestamp;
17661
17662 /* ... set the processed flag to one */
17663 L4_MABX_B.SFunction1_o23_f = 1.0;
17664 L4_MABX_B.SFunction1_o24_i = (real_T)
17665 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].timestamp;
17666 L4_MABX_B.SFunction1_o25_bb = (real_T)
17667 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].deltatime;
17668 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18F0010B].data;
17669
17670 /* Decode CAN message */
17671 {
17672 {
17673 rtican_Signal_t CAN_Sgn;
17674
17675 /* ...... "ASREngCtrlActive" (0|2, standard signal, unsigned int, little endian) */
17676 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17677 CAN_Sgn.UnsignedSgn &= 0x00000003;
17678 L4_MABX_B.SFunction1_o1_je = ((real_T) CAN_Sgn.UnsignedSgn);
17679
17680 /* ...... "ASRBrakeCtrlActive" (2|2, standard signal, unsigned int, little endian) */
17681 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17682 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17683 CAN_Sgn.UnsignedSgn &= 0x00000003;
17684 L4_MABX_B.SFunction1_o2_pn = ((real_T) CAN_Sgn.UnsignedSgn);
17685
17686 /* ...... "AntiLockBrakingActive" (4|2, standard signal, unsigned int, little endian) */
17687 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17688 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17689 CAN_Sgn.UnsignedSgn &= 0x00000003;
17690 L4_MABX_B.SFunction1_o3_la = ((real_T) CAN_Sgn.UnsignedSgn);
17691
17692 /* ...... "EBSBrakeSwitch" (6|2, standard signal, unsigned int, little endian) */
17693 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17694 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17695 CAN_Sgn.UnsignedSgn &= 0x00000003;
17696 L4_MABX_B.SFunction1_o4_mi = ((real_T) CAN_Sgn.UnsignedSgn);
17697
17698 /* ...... "BrakePedalPos" (8|8, standard signal, unsigned int, little endian) */
17699 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
17700 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17701 L4_MABX_B.SFunction1_o5_ks = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17702
17703 /* ...... "ABSOffroadSwitch" (16|2, standard signal, unsigned int, little endian) */
17704 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17705 CAN_Sgn.UnsignedSgn &= 0x00000003;
17706 L4_MABX_B.SFunction1_o6_aa = ((real_T) CAN_Sgn.UnsignedSgn);
17707
17708 /* ...... "ASROffroadSwitch" (18|2, standard signal, unsigned int, little endian) */
17709 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17710 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17711 CAN_Sgn.UnsignedSgn &= 0x00000003;
17712 L4_MABX_B.SFunction1_o7_f2 = ((real_T) CAN_Sgn.UnsignedSgn);
17713
17714 /* ...... "ASRHillHolderSwitch" (20|2, standard signal, unsigned int, little endian) */
17715 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17716 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17717 CAN_Sgn.UnsignedSgn &= 0x00000003;
17718 L4_MABX_B.SFunction1_o8_ei = ((real_T) CAN_Sgn.UnsignedSgn);
17719
17720 /* ...... "TractionCtrlOverrideSwitch" (22|2, standard signal, unsigned int, little endian) */
17721 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17722 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17723 CAN_Sgn.UnsignedSgn &= 0x00000003;
17724 L4_MABX_B.SFunction1_o9_j = ((real_T) CAN_Sgn.UnsignedSgn);
17725
17726 /* ...... "AccelInterlockSwitch" (24|2, standard signal, unsigned int, little endian) */
17727 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17728 CAN_Sgn.UnsignedSgn &= 0x00000003;
17729 L4_MABX_B.SFunction1_o10_p = ((real_T) CAN_Sgn.UnsignedSgn);
17730
17731 /* ...... "EngDerateSwitch" (26|2, standard signal, unsigned int, little endian) */
17732 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17733 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17734 CAN_Sgn.UnsignedSgn &= 0x00000003;
17735 L4_MABX_B.SFunction1_o11_gi = ((real_T) CAN_Sgn.UnsignedSgn);
17736
17737 /* ...... "EngAuxShutdownSwitch" (28|2, standard signal, unsigned int, little endian) */
17738 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17739 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17740 CAN_Sgn.UnsignedSgn &= 0x00000003;
17741 L4_MABX_B.SFunction1_o12_d = ((real_T) CAN_Sgn.UnsignedSgn);
17742
17743 /* ...... "RemoteAccelEnableSwitch" (30|2, standard signal, unsigned int, little endian) */
17744 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17745 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17746 CAN_Sgn.UnsignedSgn &= 0x00000003;
17747 L4_MABX_B.SFunction1_o13_i = ((real_T) CAN_Sgn.UnsignedSgn);
17748
17749 /* ...... "EngRetarderSelection" (32|8, standard signal, unsigned int, little endian) */
17750 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17751 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17752 L4_MABX_B.SFunction1_o14_l = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17753
17754 /* ...... "ABSFullyOperational" (40|2, standard signal, unsigned int, little endian) */
17755 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17756 CAN_Sgn.UnsignedSgn &= 0x00000003;
17757 L4_MABX_B.SFunction1_o15_j = ((real_T) CAN_Sgn.UnsignedSgn);
17758
17759 /* ...... "EBSRedWarningSignal" (42|2, standard signal, unsigned int, little endian) */
17760 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17761 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17762 CAN_Sgn.UnsignedSgn &= 0x00000003;
17763 L4_MABX_B.SFunction1_o16_pw = ((real_T) CAN_Sgn.UnsignedSgn);
17764
17765 /* ...... "ABS_EBSAmberWarningSignal" (44|2, standard signal, unsigned int, little endian) */
17766 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17767 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17768 CAN_Sgn.UnsignedSgn &= 0x00000003;
17769 L4_MABX_B.SFunction1_o17_l = ((real_T) CAN_Sgn.UnsignedSgn);
17770
17771 /* ...... "ATC_ASRInformationSignal" (46|2, standard signal, unsigned int, little endian) */
17772 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17773 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17774 CAN_Sgn.UnsignedSgn &= 0x00000003;
17775 L4_MABX_B.SFunction1_o18_c = ((real_T) CAN_Sgn.UnsignedSgn);
17776
17777 /* ...... "SrcAddrssOfCtrllngDvcFrBrkCntrl" (48|8, standard signal, unsigned int, little endian) */
17778 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17779 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17780 L4_MABX_B.SFunction1_o19_n = ((real_T) CAN_Sgn.UnsignedSgn);
17781
17782 /* ...... "HaltBrakeSwitch" (58|2, standard signal, unsigned int, little endian) */
17783 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17784 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17785 CAN_Sgn.UnsignedSgn &= 0x00000003;
17786 L4_MABX_B.SFunction1_o20_f = ((real_T) CAN_Sgn.UnsignedSgn);
17787
17788 /* ...... "TrailerABSStatus" (60|2, standard signal, unsigned int, little endian) */
17789 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17790 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17791 CAN_Sgn.UnsignedSgn &= 0x00000003;
17792 L4_MABX_B.SFunction1_o21_m = ((real_T) CAN_Sgn.UnsignedSgn);
17793
17794 /* ...... "TrctrMntdTrilerABSWarningSignal" (62|2, standard signal, unsigned int, little endian) */
17795 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17796 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17797 CAN_Sgn.UnsignedSgn &= 0x00000003;
17798 L4_MABX_B.SFunction1_o22_j = ((real_T) CAN_Sgn.UnsignedSgn);
17799 }
17800 }
17801 } else {
17802 /* set RX status to 0 because no new message has arrived */
17803 L4_MABX_B.SFunction1_o23_f = 0.0;
17804 }
17805 }
17806 }
17807
17808 /* End of Constant: '<S419>/Constant1' */
17809 /* End of Outputs for SubSystem: '<S500>/EBC1_0B' */
17810
17811 /* DataTypeConversion: '<S500>/Data Type Conversion10' */
17812 L4_MABX_B.RX_delta_time_a = L4_MABX_B.SFunction1_o25_bb;
17813
17814 /* DataTypeConversion: '<S500>/Data Type Conversion8' */
17815 L4_MABX_B.RX_status_o = (L4_MABX_B.SFunction1_o23_f != 0.0);
17816
17817 /* DataTypeConversion: '<S500>/Data Type Conversion9' */
17818 L4_MABX_B.RX_time_ko = L4_MABX_B.SFunction1_o24_i;
17819
17820 /* DataTypeConversion: '<S502>/Data Type Conversion10' */
17821 L4_MABX_B.RX_delta_time_k5 = L4_MABX_B.SFunction1_o25_b;
17822
17823 /* DataTypeConversion: '<S502>/Data Type Conversion8' */
17824 L4_MABX_B.RX_status_h = (L4_MABX_B.SFunction1_o23_e != 0.0);
17825
17826 /* DataTypeConversion: '<S502>/Data Type Conversion9' */
17827 L4_MABX_B.RX_time_kf = L4_MABX_B.SFunction1_o24_a;
17828
17829 /* DataTypeConversion: '<S504>/Data Type Conversion10' */
17830 L4_MABX_B.RX_delta_time_f = L4_MABX_B.SFunction1_o10_j;
17831
17832 /* DataTypeConversion: '<S504>/Data Type Conversion8' */
17833 L4_MABX_B.RX_status_ci = (L4_MABX_B.SFunction1_o8_ea != 0.0);
17834
17835 /* DataTypeConversion: '<S504>/Data Type Conversion9' */
17836 L4_MABX_B.RX_time_h = L4_MABX_B.SFunction1_o9_i;
17837
17838 /* DataTypeConversion: '<S551>/Data Type Conversion10' */
17839 L4_MABX_B.RX_delta_time_lg = L4_MABX_B.SFunction1_o11_ah;
17840
17841 /* DataTypeConversion: '<S551>/Data Type Conversion8' */
17842 L4_MABX_B.RX_status_ah = (L4_MABX_B.SFunction1_o9_f != 0.0);
17843
17844 /* DataTypeConversion: '<S551>/Data Type Conversion9' */
17845 L4_MABX_B.RX_time_o = L4_MABX_B.SFunction1_o10_l;
17846
17847 /* Outputs for Enabled SubSystem: '<S553>/EEC2_001' incorporates:
17848 * EnablePort: '<S554>/Enable'
17849 */
17850 /* Constant: '<S424>/Enable_RX_EEC2_00' */
17851 if (L4_MABX_P.Enable_RX_EEC2_00_Value) {
17852 /* S-Function (rti_commonblock): '<S554>/S-Function1' */
17853 /* This comment workarounds a code generation problem */
17854
17855 /* dSPACE RTICAN RX Message Block: "EEC2_00" Id:217056000 */
17856 {
17857 UInt32 *CAN_Msg;
17858 static dsfloat time_old = 0.0;
17859
17860 /* Read status and timestamp info (previous message) */
17861 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].timestamp !=
17862 time_old) {
17863 /* ... save timestamp info for the calculation of the RX status
17864 during the consecutive sample hit*/
17865 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].
17866 timestamp;
17867
17868 /* ... set the processed flag to one */
17869 L4_MABX_B.SFunction1_o15_p = 1.0;
17870 L4_MABX_B.SFunction1_o16_p = (real_T)
17871 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].timestamp;
17872 L4_MABX_B.SFunction1_o17_m = (real_T)
17873 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].deltatime;
17874 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0xCF00300].data;
17875
17876 /* Decode CAN message */
17877 {
17878 {
17879 rtican_Signal_t CAN_Sgn;
17880
17881 /* ...... "SPN558_AccelPed1LowIdlSwitch" (0|2, standard signal, unsigned int, little endian) */
17882 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17883 CAN_Sgn.UnsignedSgn &= 0x00000003;
17884 L4_MABX_B.SFunction1_o1_fok = ((real_T) CAN_Sgn.UnsignedSgn);
17885
17886 /* ...... "SPN559_AccelPedKickdownSw" (2|2, standard signal, unsigned int, little endian) */
17887 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17888 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17889 CAN_Sgn.UnsignedSgn &= 0x00000003;
17890 L4_MABX_B.SFunction1_o2_kw = ((real_T) CAN_Sgn.UnsignedSgn);
17891
17892 /* ...... "SPN1437_RoadSpeedLimitStatus" (4|2, standard signal, unsigned int, little endian) */
17893 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17894 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17895 CAN_Sgn.UnsignedSgn &= 0x00000003;
17896 L4_MABX_B.SFunction1_o3_nv = ((real_T) CAN_Sgn.UnsignedSgn);
17897
17898 /* ...... "SPN2970_AccelPed2LowIdlSwitch" (6|2, standard signal, unsigned int, little endian) */
17899 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
17900 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17901 CAN_Sgn.UnsignedSgn &= 0x00000003;
17902 L4_MABX_B.SFunction1_o4_dio = ((real_T) CAN_Sgn.UnsignedSgn);
17903
17904 /* ...... "SPN91_AccelPedPos1" (8|8, standard signal, unsigned int, little endian) */
17905 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
17906 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17907 L4_MABX_B.SFunction1_o5_l5 = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17908
17909 /* ...... "SPN92_EngPercLoadAtCurrSpd" (16|8, standard signal, unsigned int, little endian) */
17910 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
17911 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17912 L4_MABX_B.SFunction1_o6_k = ((real_T) CAN_Sgn.UnsignedSgn);
17913
17914 /* ...... "SPN974_RemAccelPedalPosition" (24|8, standard signal, unsigned int, little endian) */
17915 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
17916 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17917 L4_MABX_B.SFunction1_o7_kz = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17918
17919 /* ...... "SPN29_AccelPedPos2" (32|8, standard signal, unsigned int, little endian) */
17920 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
17921 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17922 L4_MABX_B.SFunction1_o8_fg = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17923
17924 /* ...... "SPN2979_VehAccelRateLimStatus" (40|2, standard signal, unsigned int, little endian) */
17925 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17926 CAN_Sgn.UnsignedSgn &= 0x00000003;
17927 L4_MABX_B.SFunction1_o9_p0 = ((real_T) CAN_Sgn.UnsignedSgn);
17928
17929 /* ...... "SPN5021_MomEngMaxPwrEnFdbk" (42|2, standard signal, unsigned int, little endian) */
17930 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17931 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
17932 CAN_Sgn.UnsignedSgn &= 0x00000003;
17933 L4_MABX_B.SFunction1_o10_gp = ((real_T) CAN_Sgn.UnsignedSgn);
17934
17935 /* ...... "SPN5399_DPFThermMgmtActive" (44|2, standard signal, unsigned int, little endian) */
17936 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17937 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
17938 CAN_Sgn.UnsignedSgn &= 0x00000003;
17939 L4_MABX_B.SFunction1_o11_e = ((real_T) CAN_Sgn.UnsignedSgn);
17940
17941 /* ...... "SPN5400_SCRThermMgmtActive" (46|2, standard signal, unsigned int, little endian) */
17942 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
17943 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 6;
17944 CAN_Sgn.UnsignedSgn &= 0x00000003;
17945 L4_MABX_B.SFunction1_o12_o = ((real_T) CAN_Sgn.UnsignedSgn);
17946
17947 /* ...... "SPN3357_ActMaxAvailEngPercTrq" (48|8, standard signal, unsigned int, little endian) */
17948 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
17949 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17950 L4_MABX_B.SFunction1_o13_a = 0.4 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
17951
17952 /* ...... "SPN5398_EstPumpingPercentTorque" (56|8, standard signal, unsigned int, little endian) */
17953 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
17954 CAN_Sgn.UnsignedSgn &= 0x000000FF;
17955 L4_MABX_B.SFunction1_o14_h = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
17956 );
17957 }
17958 }
17959 } else {
17960 /* set RX status to 0 because no new message has arrived */
17961 L4_MABX_B.SFunction1_o15_p = 0.0;
17962 }
17963 }
17964 }
17965
17966 /* End of Constant: '<S424>/Enable_RX_EEC2_00' */
17967 /* End of Outputs for SubSystem: '<S553>/EEC2_001' */
17968
17969 /* DataTypeConversion: '<S553>/Data Type Conversion10' */
17970 L4_MABX_B.RX_delta_time_m5 = L4_MABX_B.SFunction1_o17_m;
17971
17972 /* DataTypeConversion: '<S553>/Data Type Conversion8' */
17973 L4_MABX_B.RX_status_nd = (L4_MABX_B.SFunction1_o15_p != 0.0);
17974
17975 /* DataTypeConversion: '<S553>/Data Type Conversion9' */
17976 L4_MABX_B.RX_time_dz = L4_MABX_B.SFunction1_o16_p;
17977
17978 /* DataTypeConversion: '<S555>/Data Type Conversion10' */
17979 L4_MABX_B.RX_delta_time_jw = L4_MABX_B.SFunction1_o5_n;
17980
17981 /* DataTypeConversion: '<S555>/Data Type Conversion8' */
17982 L4_MABX_B.RX_status_k = (L4_MABX_B.SFunction1_o3_jq != 0.0);
17983
17984 /* DataTypeConversion: '<S555>/Data Type Conversion9' */
17985 L4_MABX_B.RX_time_n3 = L4_MABX_B.SFunction1_o4_if;
17986
17987 /* DataTypeConversion: '<S557>/Data Type Conversion10' */
17988 L4_MABX_B.RX_delta_time_g = L4_MABX_B.SFunction1_o6_c;
17989
17990 /* DataTypeConversion: '<S557>/Data Type Conversion8' */
17991 L4_MABX_B.RX_status_ke = (L4_MABX_B.SFunction1_o4_mn != 0.0);
17992
17993 /* DataTypeConversion: '<S557>/Data Type Conversion9' */
17994 L4_MABX_B.RX_time_mk = L4_MABX_B.SFunction1_o5_jl;
17995
17996 /* Switch: '<S559>/Switch' */
17997 if (L4_MABX_B.RX_status_aq) {
17998 L4_MABX_B.SID_k = L4_MABX_B.SFunction1_o1_ig;
17999 L4_MABX_B.SetMode = L4_MABX_B.SFunction1_o2_cn;
18000 L4_MABX_B.OpMode = L4_MABX_B.SFunction1_o3_ia;
18001 L4_MABX_B.VDOP = L4_MABX_B.SFunction1_o5_aw;
18002 L4_MABX_B.TDOP = L4_MABX_B.SFunction1_o6_nd;
18003 L4_MABX_B.RX_status_j = L4_MABX_B.RX_status_aq;
18004 } else {
18005 L4_MABX_B.SID_k = L4_MABX_B.SFunction1_o1_oq;
18006 L4_MABX_B.SetMode = L4_MABX_B.SFunction1_o2_dtj;
18007 L4_MABX_B.OpMode = L4_MABX_B.SFunction1_o3_mj;
18008 L4_MABX_B.VDOP = L4_MABX_B.SFunction1_o5_pz;
18009 L4_MABX_B.TDOP = L4_MABX_B.SFunction1_o6_l;
18010
18011 /* DataTypeConversion: '<S559>/Data Type Conversion3' */
18012 L4_MABX_B.RX_status_id = (L4_MABX_B.SFunction1_o7_bz != 0.0);
18013 L4_MABX_B.RX_status_j = L4_MABX_B.RX_status_id;
18014 }
18015
18016 if (L4_MABX_B.RX_status_aq) {
18017 /* DataTypeConversion: '<S559>/Data Type Conversion9' */
18018 L4_MABX_B.RX_time_hr = L4_MABX_B.SFunction1_o8_l;
18019 L4_MABX_B.RX_time_nd = L4_MABX_B.RX_time_hr;
18020
18021 /* DataTypeConversion: '<S559>/Data Type Conversion10' */
18022 L4_MABX_B.RX_delta_time_at = L4_MABX_B.SFunction1_o9_d;
18023 L4_MABX_B.RX_delta_time_i = L4_MABX_B.RX_delta_time_at;
18024 } else {
18025 /* DataTypeConversion: '<S559>/Data Type Conversion2' */
18026 L4_MABX_B.RX_time_dzo = L4_MABX_B.SFunction1_o8_m;
18027 L4_MABX_B.RX_time_nd = L4_MABX_B.RX_time_dzo;
18028
18029 /* DataTypeConversion: '<S559>/Data Type Conversion1' */
18030 L4_MABX_B.RX_delta_time_na = L4_MABX_B.SFunction1_o9_hi;
18031 L4_MABX_B.RX_delta_time_i = L4_MABX_B.RX_delta_time_na;
18032 }
18033
18034 /* DataTypeConversion: '<S562>/Data Type Conversion10' */
18035 L4_MABX_B.RX_delta_time_aa = L4_MABX_B.SFunction1_o7_lj;
18036
18037 /* DataTypeConversion: '<S562>/Data Type Conversion8' */
18038 L4_MABX_B.RX_status_e = (L4_MABX_B.SFunction1_o5_e != 0.0);
18039
18040 /* DataTypeConversion: '<S562>/Data Type Conversion9' */
18041 L4_MABX_B.RX_time_pu = L4_MABX_B.SFunction1_o6_f;
18042
18043 /* Switch: '<S429>/Switch' */
18044 if (L4_MABX_B.Operator_k1) {
18045 ReAX_EchoedSteerWheelPos = L4_MABX_B.SFunction1_o2_ji;
18046
18047 /* DataTypeConversion: '<S564>/Data Type Conversion8' */
18048 L4_MABX_B.RX_status_bc = (L4_MABX_B.SFunction1_o3_k5 != 0.0);
18049 L4_MABX_B.RX_status_on = L4_MABX_B.RX_status_bc;
18050
18051 /* DataTypeConversion: '<S564>/Data Type Conversion9' */
18052 L4_MABX_B.RX_time_jd = L4_MABX_B.SFunction1_o4_g4;
18053 L4_MABX_B.RX_time_ii = L4_MABX_B.RX_time_jd;
18054
18055 /* DataTypeConversion: '<S564>/Data Type Conversion10' */
18056 L4_MABX_B.RX_delta_time_ed = L4_MABX_B.SFunction1_o5_ot;
18057 L4_MABX_B.RX_delta_time_lk = L4_MABX_B.RX_delta_time_ed;
18058 } else {
18059 ReAX_EchoedSteerWheelPos = L4_MABX_B.SFunction1_o2_ll;
18060
18061 /* DataTypeConversion: '<S565>/Data Type Conversion8' */
18062 L4_MABX_B.RX_status_ng = (L4_MABX_B.SFunction1_o3_m2 != 0.0);
18063 L4_MABX_B.RX_status_on = L4_MABX_B.RX_status_ng;
18064
18065 /* DataTypeConversion: '<S565>/Data Type Conversion9' */
18066 L4_MABX_B.RX_time_do = L4_MABX_B.SFunction1_o4_dwj;
18067 L4_MABX_B.RX_time_ii = L4_MABX_B.RX_time_do;
18068
18069 /* DataTypeConversion: '<S565>/Data Type Conversion10' */
18070 L4_MABX_B.RX_delta_time_ov = L4_MABX_B.SFunction1_o5_i0;
18071 L4_MABX_B.RX_delta_time_lk = L4_MABX_B.RX_delta_time_ov;
18072 }
18073
18074 /* RelationalOperator: '<S601>/Operator' incorporates:
18075 * Constant: '<S432>/Constant'
18076 * Constant: '<S597>/Constant'
18077 */
18078 L4_MABX_B.Operator_f2 = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18079 L4_MABX_P.Constant_Value_en);
18080
18081 /* Outputs for Enabled SubSystem: '<S594>/CAN_TYPE1_RX_M1_C1' incorporates:
18082 * EnablePort: '<S598>/Enable'
18083 */
18084 if (L4_MABX_B.Operator_f2) {
18085 /* S-Function (rti_commonblock): '<S598>/S-Function1' */
18086 /* This comment workarounds a code generation problem */
18087
18088 /* dSPACE RTICAN RX Message Block: "PropB_XPR_1" Id:419387472 */
18089 {
18090 UInt32 *CAN_Msg;
18091 static dsfloat time_old = 0.0;
18092
18093 /* Read status and timestamp info (previous message) */
18094 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].timestamp !=
18095 time_old) {
18096 /* ... save timestamp info for the calculation of the RX status
18097 during the consecutive sample hit*/
18098 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].
18099 timestamp;
18100
18101 /* ... set the processed flag to one */
18102 L4_MABX_B.SFunction1_o3_ky = 1.0;
18103 L4_MABX_B.SFunction1_o4_dw = (real_T)
18104 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].timestamp;
18105 L4_MABX_B.SFunction1_o5_b = (real_T)
18106 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].deltatime;
18107 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FF5850].data;
18108
18109 /* Decode CAN message */
18110 {
18111 {
18112 rtican_Signal_t CAN_Sgn;
18113
18114 /* ...... "EPBPCMInhibitStatusFeedback" (0|2, standard signal, unsigned int, little endian) */
18115 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18116 CAN_Sgn.UnsignedSgn &= 0x00000003;
18117 L4_MABX_B.SFunction1_o1_pd = ((real_T) CAN_Sgn.UnsignedSgn);
18118
18119 /* ...... "EPBPCMManualStatusFeedback" (2|2, standard signal, unsigned int, little endian) */
18120 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18121 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18122 CAN_Sgn.UnsignedSgn &= 0x00000003;
18123 L4_MABX_B.SFunction1_o2_hg = ((real_T) CAN_Sgn.UnsignedSgn);
18124 }
18125 }
18126 } else {
18127 /* set RX status to 0 because no new message has arrived */
18128 L4_MABX_B.SFunction1_o3_ky = 0.0;
18129 }
18130 }
18131 }
18132
18133 /* End of Outputs for SubSystem: '<S594>/CAN_TYPE1_RX_M1_C1' */
18134
18135 /* RelationalOperator: '<S602>/Operator' incorporates:
18136 * Constant: '<S432>/Constant'
18137 * Constant: '<S597>/Constant1'
18138 */
18139 L4_MABX_B.Operator_jgw = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18140 L4_MABX_P.Constant1_Value_n3);
18141
18142 /* Outputs for Enabled SubSystem: '<S595>/CAN_TYPE1_RX_M1_C2' incorporates:
18143 * EnablePort: '<S599>/Enable'
18144 */
18145 if (L4_MABX_B.Operator_jgw) {
18146 /* S-Function (rti_commonblock): '<S599>/S-Function1' */
18147 /* This comment workarounds a code generation problem */
18148
18149 /* dSPACE RTICAN RX Message Block: "PropB_XPR_1" Id:419387472 */
18150 {
18151 UInt32 *CAN_Msg;
18152 static dsfloat time_old = 0.0;
18153
18154 /* Read status and timestamp info (previous message) */
18155 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].timestamp !=
18156 time_old) {
18157 /* ... save timestamp info for the calculation of the RX status
18158 during the consecutive sample hit*/
18159 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].
18160 timestamp;
18161
18162 /* ... set the processed flag to one */
18163 L4_MABX_B.SFunction1_o3_n = 1.0;
18164 L4_MABX_B.SFunction1_o4_dp = (real_T)
18165 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].timestamp;
18166 L4_MABX_B.SFunction1_o5_mf = (real_T)
18167 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].deltatime;
18168 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FF5850].data;
18169
18170 /* Decode CAN message */
18171 {
18172 {
18173 rtican_Signal_t CAN_Sgn;
18174
18175 /* ...... "EPBPCMInhibitStatusFeedback" (0|2, standard signal, unsigned int, little endian) */
18176 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18177 CAN_Sgn.UnsignedSgn &= 0x00000003;
18178 L4_MABX_B.SFunction1_o1_c4q = ((real_T) CAN_Sgn.UnsignedSgn);
18179
18180 /* ...... "EPBPCMManualStatusFeedback" (2|2, standard signal, unsigned int, little endian) */
18181 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18182 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18183 CAN_Sgn.UnsignedSgn &= 0x00000003;
18184 L4_MABX_B.SFunction1_o2_in = ((real_T) CAN_Sgn.UnsignedSgn);
18185 }
18186 }
18187 } else {
18188 /* set RX status to 0 because no new message has arrived */
18189 L4_MABX_B.SFunction1_o3_n = 0.0;
18190 }
18191 }
18192 }
18193
18194 /* End of Outputs for SubSystem: '<S595>/CAN_TYPE1_RX_M1_C2' */
18195
18196 /* RelationalOperator: '<S603>/Operator' incorporates:
18197 * Constant: '<S432>/Constant'
18198 * Constant: '<S597>/Constant2'
18199 */
18200 L4_MABX_B.Operator_jx = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18201 L4_MABX_P.Constant2_Value_i);
18202
18203 /* Outputs for Enabled SubSystem: '<S596>/CAN_TYPE1_RX_M2_C1' incorporates:
18204 * EnablePort: '<S600>/Enable'
18205 */
18206 if (L4_MABX_B.Operator_jx) {
18207 /* S-Function (rti_commonblock): '<S600>/S-Function1' */
18208 /* This comment workarounds a code generation problem */
18209
18210 /* dSPACE RTICAN RX Message Block: "PropB_XPR_1" Id:419387472 */
18211 {
18212 UInt32 *CAN_Msg;
18213 static dsfloat time_old = 0.0;
18214
18215 /* Read status and timestamp info (previous message) */
18216 if (can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].timestamp !=
18217 time_old) {
18218 /* ... save timestamp info for the calculation of the RX status
18219 during the consecutive sample hit*/
18220 time_old = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].
18221 timestamp;
18222
18223 /* ... set the processed flag to one */
18224 L4_MABX_B.SFunction1_o3_ix = 1.0;
18225 L4_MABX_B.SFunction1_o4_ji = (real_T)
18226 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].timestamp;
18227 L4_MABX_B.SFunction1_o5_ip = (real_T)
18228 can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].deltatime;
18229 CAN_Msg = can_type1_M2_C1_XTD[CANTP1_M2_C1_RXSRVC_XTD_0x18FF5850].data;
18230
18231 /* Decode CAN message */
18232 {
18233 {
18234 rtican_Signal_t CAN_Sgn;
18235
18236 /* ...... "EPBPCMInhibitStatusFeedback" (0|2, standard signal, unsigned int, little endian) */
18237 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18238 CAN_Sgn.UnsignedSgn &= 0x00000003;
18239 L4_MABX_B.SFunction1_o1_ir = ((real_T) CAN_Sgn.UnsignedSgn);
18240
18241 /* ...... "EPBPCMManualStatusFeedback" (2|2, standard signal, unsigned int, little endian) */
18242 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18243 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18244 CAN_Sgn.UnsignedSgn &= 0x00000003;
18245 L4_MABX_B.SFunction1_o2_b4 = ((real_T) CAN_Sgn.UnsignedSgn);
18246 }
18247 }
18248 } else {
18249 /* set RX status to 0 because no new message has arrived */
18250 L4_MABX_B.SFunction1_o3_ix = 0.0;
18251 }
18252 }
18253 }
18254
18255 /* End of Outputs for SubSystem: '<S596>/CAN_TYPE1_RX_M2_C1' */
18256
18257 /* DataTypeConversion: '<S596>/Data Type Conversion' */
18258 PositionFinalLimited = L4_MABX_B.SFunction1_o1_ir;
18259 if (PositionFinalLimited < 256.0) {
18260 if (PositionFinalLimited >= 0.0) {
18261 starting_index = (uint8_T)PositionFinalLimited;
18262 } else {
18263 starting_index = 0U;
18264 }
18265 } else {
18266 starting_index = MAX_uint8_T;
18267 }
18268
18269 L4_MABX_B.DataTypeConversion_bs = starting_index;
18270
18271 /* End of DataTypeConversion: '<S596>/Data Type Conversion' */
18272
18273 /* DataTypeConversion: '<S596>/Data Type Conversion2' */
18274 L4_MABX_B.EPBPCMInhibitStatusFeedback = (ENUM_XPR_FEEDBACK_T)
18275 L4_MABX_B.DataTypeConversion_bs;
18276
18277 /* MultiPortSwitch: '<S432>/Multiport_Switch' incorporates:
18278 * Constant: '<S432>/Constant'
18279 */
18280 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18281 case ENUM_CAN_RX_T_RX_CAN_1:
18282 /* DataTypeConversion: '<S594>/Data Type Conversion' */
18283 PositionFinalLimited = L4_MABX_B.SFunction1_o1_pd;
18284 if (PositionFinalLimited < 256.0) {
18285 if (PositionFinalLimited >= 0.0) {
18286 starting_index = (uint8_T)PositionFinalLimited;
18287 } else {
18288 starting_index = 0U;
18289 }
18290 } else {
18291 starting_index = MAX_uint8_T;
18292 }
18293
18294 L4_MABX_B.DataTypeConversion_bq = starting_index;
18295
18296 /* End of DataTypeConversion: '<S594>/Data Type Conversion' */
18297
18298 /* DataTypeConversion: '<S594>/Data Type Conversion2' */
18299 L4_MABX_B.EPBPCMInhibitStatusFeedback_d = (ENUM_XPR_FEEDBACK_T)
18300 L4_MABX_B.DataTypeConversion_bq;
18301 L4_MABX_B.EPBPCMInhibitStatusFeedback_p =
18302 L4_MABX_B.EPBPCMInhibitStatusFeedback_d;
18303 break;
18304
18305 case ENUM_CAN_RX_T_RX_CAN_2:
18306 /* DataTypeConversion: '<S595>/Data Type Conversion' */
18307 PositionFinalLimited = L4_MABX_B.SFunction1_o1_c4q;
18308 if (PositionFinalLimited < 256.0) {
18309 if (PositionFinalLimited >= 0.0) {
18310 starting_index = (uint8_T)PositionFinalLimited;
18311 } else {
18312 starting_index = 0U;
18313 }
18314 } else {
18315 starting_index = MAX_uint8_T;
18316 }
18317
18318 L4_MABX_B.DataTypeConversion_ot = starting_index;
18319
18320 /* End of DataTypeConversion: '<S595>/Data Type Conversion' */
18321
18322 /* DataTypeConversion: '<S595>/Data Type Conversion2' */
18323 L4_MABX_B.EPBPCMInhibitStatusFeedback_g = (ENUM_XPR_FEEDBACK_T)
18324 L4_MABX_B.DataTypeConversion_ot;
18325 L4_MABX_B.EPBPCMInhibitStatusFeedback_p =
18326 L4_MABX_B.EPBPCMInhibitStatusFeedback_g;
18327 break;
18328
18329 case ENUM_CAN_RX_T_RX_CAN_3:
18330 L4_MABX_B.EPBPCMInhibitStatusFeedback_p =
18331 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18332 break;
18333
18334 case ENUM_CAN_RX_T_RX_CAN_4:
18335 L4_MABX_B.EPBPCMInhibitStatusFeedback_p =
18336 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18337 break;
18338
18339 case ENUM_CAN_RX_T_RX_CAN_5:
18340 L4_MABX_B.EPBPCMInhibitStatusFeedback_p =
18341 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18342 break;
18343
18344 case ENUM_CAN_RX_T_RX_CAN_6:
18345 L4_MABX_B.EPBPCMInhibitStatusFeedback_p =
18346 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18347 break;
18348
18349 default:
18350 L4_MABX_B.EPBPCMInhibitStatusFeedback_p =
18351 L4_MABX_B.EPBPCMInhibitStatusFeedback;
18352 break;
18353 }
18354
18355 /* DataTypeConversion: '<S596>/Data Type Conversion1' */
18356 PositionFinalLimited = L4_MABX_B.SFunction1_o2_b4;
18357 if (PositionFinalLimited < 256.0) {
18358 if (PositionFinalLimited >= 0.0) {
18359 starting_index = (uint8_T)PositionFinalLimited;
18360 } else {
18361 starting_index = 0U;
18362 }
18363 } else {
18364 starting_index = MAX_uint8_T;
18365 }
18366
18367 L4_MABX_B.DataTypeConversion1_gx = starting_index;
18368
18369 /* End of DataTypeConversion: '<S596>/Data Type Conversion1' */
18370
18371 /* DataTypeConversion: '<S596>/Data Type Conversion3' */
18372 L4_MABX_B.EPBPCMManualStatusFeedback = (ENUM_XPR_FEEDBACK_T)
18373 L4_MABX_B.DataTypeConversion1_gx;
18374
18375 /* MultiPortSwitch: '<S432>/Multiport_Switch' incorporates:
18376 * Constant: '<S432>/Constant'
18377 */
18378 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18379 case ENUM_CAN_RX_T_RX_CAN_1:
18380 /* DataTypeConversion: '<S594>/Data Type Conversion1' */
18381 PositionFinalLimited = L4_MABX_B.SFunction1_o2_hg;
18382 if (PositionFinalLimited < 256.0) {
18383 if (PositionFinalLimited >= 0.0) {
18384 starting_index = (uint8_T)PositionFinalLimited;
18385 } else {
18386 starting_index = 0U;
18387 }
18388 } else {
18389 starting_index = MAX_uint8_T;
18390 }
18391
18392 L4_MABX_B.DataTypeConversion1_mo = starting_index;
18393
18394 /* End of DataTypeConversion: '<S594>/Data Type Conversion1' */
18395
18396 /* DataTypeConversion: '<S594>/Data Type Conversion3' */
18397 L4_MABX_B.EPBPCMManualStatusFeedback_a = (ENUM_XPR_FEEDBACK_T)
18398 L4_MABX_B.DataTypeConversion1_mo;
18399 L4_MABX_B.EPBPCMManualStatusFeedback_h =
18400 L4_MABX_B.EPBPCMManualStatusFeedback_a;
18401 break;
18402
18403 case ENUM_CAN_RX_T_RX_CAN_2:
18404 /* DataTypeConversion: '<S595>/Data Type Conversion1' */
18405 PositionFinalLimited = L4_MABX_B.SFunction1_o2_in;
18406 if (PositionFinalLimited < 256.0) {
18407 if (PositionFinalLimited >= 0.0) {
18408 starting_index = (uint8_T)PositionFinalLimited;
18409 } else {
18410 starting_index = 0U;
18411 }
18412 } else {
18413 starting_index = MAX_uint8_T;
18414 }
18415
18416 L4_MABX_B.DataTypeConversion1_mt = starting_index;
18417
18418 /* End of DataTypeConversion: '<S595>/Data Type Conversion1' */
18419
18420 /* DataTypeConversion: '<S595>/Data Type Conversion3' */
18421 L4_MABX_B.EPBPCMManualStatusFeedback_f = (ENUM_XPR_FEEDBACK_T)
18422 L4_MABX_B.DataTypeConversion1_mt;
18423 L4_MABX_B.EPBPCMManualStatusFeedback_h =
18424 L4_MABX_B.EPBPCMManualStatusFeedback_f;
18425 break;
18426
18427 case ENUM_CAN_RX_T_RX_CAN_3:
18428 L4_MABX_B.EPBPCMManualStatusFeedback_h =
18429 L4_MABX_B.EPBPCMManualStatusFeedback;
18430 break;
18431
18432 case ENUM_CAN_RX_T_RX_CAN_4:
18433 L4_MABX_B.EPBPCMManualStatusFeedback_h =
18434 L4_MABX_B.EPBPCMManualStatusFeedback;
18435 break;
18436
18437 case ENUM_CAN_RX_T_RX_CAN_5:
18438 L4_MABX_B.EPBPCMManualStatusFeedback_h =
18439 L4_MABX_B.EPBPCMManualStatusFeedback;
18440 break;
18441
18442 case ENUM_CAN_RX_T_RX_CAN_6:
18443 L4_MABX_B.EPBPCMManualStatusFeedback_h =
18444 L4_MABX_B.EPBPCMManualStatusFeedback;
18445 break;
18446
18447 default:
18448 L4_MABX_B.EPBPCMManualStatusFeedback_h =
18449 L4_MABX_B.EPBPCMManualStatusFeedback;
18450 break;
18451 }
18452
18453 /* DataTypeConversion: '<S596>/Data Type Conversion8' */
18454 L4_MABX_B.RX_status_n2 = (L4_MABX_B.SFunction1_o3_ix != 0.0);
18455
18456 /* MultiPortSwitch: '<S432>/Multiport_Switch' incorporates:
18457 * Constant: '<S432>/Constant'
18458 */
18459 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18460 case ENUM_CAN_RX_T_RX_CAN_1:
18461 /* DataTypeConversion: '<S594>/Data Type Conversion8' */
18462 L4_MABX_B.RX_status_hk = (L4_MABX_B.SFunction1_o3_ky != 0.0);
18463 L4_MABX_B.RX_status_i1p = L4_MABX_B.RX_status_hk;
18464 break;
18465
18466 case ENUM_CAN_RX_T_RX_CAN_2:
18467 /* DataTypeConversion: '<S595>/Data Type Conversion8' */
18468 L4_MABX_B.RX_status_iy = (L4_MABX_B.SFunction1_o3_n != 0.0);
18469 L4_MABX_B.RX_status_i1p = L4_MABX_B.RX_status_iy;
18470 break;
18471
18472 case ENUM_CAN_RX_T_RX_CAN_3:
18473 L4_MABX_B.RX_status_i1p = L4_MABX_B.RX_status_n2;
18474 break;
18475
18476 case ENUM_CAN_RX_T_RX_CAN_4:
18477 L4_MABX_B.RX_status_i1p = L4_MABX_B.RX_status_n2;
18478 break;
18479
18480 case ENUM_CAN_RX_T_RX_CAN_5:
18481 L4_MABX_B.RX_status_i1p = L4_MABX_B.RX_status_n2;
18482 break;
18483
18484 case ENUM_CAN_RX_T_RX_CAN_6:
18485 L4_MABX_B.RX_status_i1p = L4_MABX_B.RX_status_n2;
18486 break;
18487
18488 default:
18489 L4_MABX_B.RX_status_i1p = L4_MABX_B.RX_status_n2;
18490 break;
18491 }
18492
18493 /* DataTypeConversion: '<S596>/Data Type Conversion9' */
18494 L4_MABX_B.RX_time_k3 = L4_MABX_B.SFunction1_o4_ji;
18495
18496 /* MultiPortSwitch: '<S432>/Multiport_Switch' incorporates:
18497 * Constant: '<S432>/Constant'
18498 */
18499 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18500 case ENUM_CAN_RX_T_RX_CAN_1:
18501 /* DataTypeConversion: '<S594>/Data Type Conversion9' */
18502 L4_MABX_B.RX_time_b = L4_MABX_B.SFunction1_o4_dw;
18503 L4_MABX_B.RX_time_he = L4_MABX_B.RX_time_b;
18504 break;
18505
18506 case ENUM_CAN_RX_T_RX_CAN_2:
18507 /* DataTypeConversion: '<S595>/Data Type Conversion9' */
18508 L4_MABX_B.RX_time_dc = L4_MABX_B.SFunction1_o4_dp;
18509 L4_MABX_B.RX_time_he = L4_MABX_B.RX_time_dc;
18510 break;
18511
18512 case ENUM_CAN_RX_T_RX_CAN_3:
18513 L4_MABX_B.RX_time_he = L4_MABX_B.RX_time_k3;
18514 break;
18515
18516 case ENUM_CAN_RX_T_RX_CAN_4:
18517 L4_MABX_B.RX_time_he = L4_MABX_B.RX_time_k3;
18518 break;
18519
18520 case ENUM_CAN_RX_T_RX_CAN_5:
18521 L4_MABX_B.RX_time_he = L4_MABX_B.RX_time_k3;
18522 break;
18523
18524 case ENUM_CAN_RX_T_RX_CAN_6:
18525 L4_MABX_B.RX_time_he = L4_MABX_B.RX_time_k3;
18526 break;
18527
18528 default:
18529 L4_MABX_B.RX_time_he = L4_MABX_B.RX_time_k3;
18530 break;
18531 }
18532
18533 /* DataTypeConversion: '<S596>/Data Type Conversion10' */
18534 L4_MABX_B.RX_delta_time_hh = L4_MABX_B.SFunction1_o5_ip;
18535
18536 /* MultiPortSwitch: '<S432>/Multiport_Switch' incorporates:
18537 * Constant: '<S432>/Constant'
18538 */
18539 switch (CANR_PROPB_XPR_1_50_CHANNEL_APV) {
18540 case ENUM_CAN_RX_T_RX_CAN_1:
18541 /* DataTypeConversion: '<S594>/Data Type Conversion10' */
18542 L4_MABX_B.RX_delta_time_mu = L4_MABX_B.SFunction1_o5_b;
18543 L4_MABX_B.RX_delta_time_lz = L4_MABX_B.RX_delta_time_mu;
18544 break;
18545
18546 case ENUM_CAN_RX_T_RX_CAN_2:
18547 /* DataTypeConversion: '<S595>/Data Type Conversion10' */
18548 L4_MABX_B.RX_delta_time_bob = L4_MABX_B.SFunction1_o5_mf;
18549 L4_MABX_B.RX_delta_time_lz = L4_MABX_B.RX_delta_time_bob;
18550 break;
18551
18552 case ENUM_CAN_RX_T_RX_CAN_3:
18553 L4_MABX_B.RX_delta_time_lz = L4_MABX_B.RX_delta_time_hh;
18554 break;
18555
18556 case ENUM_CAN_RX_T_RX_CAN_4:
18557 L4_MABX_B.RX_delta_time_lz = L4_MABX_B.RX_delta_time_hh;
18558 break;
18559
18560 case ENUM_CAN_RX_T_RX_CAN_5:
18561 L4_MABX_B.RX_delta_time_lz = L4_MABX_B.RX_delta_time_hh;
18562 break;
18563
18564 case ENUM_CAN_RX_T_RX_CAN_6:
18565 L4_MABX_B.RX_delta_time_lz = L4_MABX_B.RX_delta_time_hh;
18566 break;
18567
18568 default:
18569 L4_MABX_B.RX_delta_time_lz = L4_MABX_B.RX_delta_time_hh;
18570 break;
18571 }
18572
18573 /* RelationalOperator: '<S604>/Operator' incorporates:
18574 * Constant: '<S432>/Constant'
18575 * Constant: '<S597>/Constant3'
18576 */
18577 L4_MABX_B.Operator_ly = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18578 L4_MABX_P.Constant3_Value_j0);
18579
18580 /* RelationalOperator: '<S605>/Operator' incorporates:
18581 * Constant: '<S432>/Constant'
18582 * Constant: '<S597>/Constant4'
18583 */
18584 L4_MABX_B.Operator_ng = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18585 L4_MABX_P.Constant4_Value_o5);
18586
18587 /* RelationalOperator: '<S606>/Operator' incorporates:
18588 * Constant: '<S432>/Constant'
18589 * Constant: '<S597>/Constant5'
18590 */
18591 L4_MABX_B.Operator_ip = (CANR_PROPB_XPR_1_50_CHANNEL_APV ==
18592 L4_MABX_P.Constant5_Value_a);
18593
18594 /* Outputs for Enabled SubSystem: '<S607>/PX2_LaneEdgeLeft' incorporates:
18595 * EnablePort: '<S608>/Enable'
18596 */
18597 /* Constant: '<S433>/Constant' */
18598 if (L4_MABX_P.Constant_Value_jo) {
18599 /* S-Function (rti_commonblock): '<S608>/S-Function1' */
18600 /* This comment workarounds a code generation problem */
18601
18602 /* dSPACE RTICAN RX Message Block: "PX2_LaneEdgeLeft" Id:770 */
18603 {
18604 UInt32 *CAN_Msg;
18605 static dsfloat time_old = 0.0;
18606
18607 /* Read status and timestamp info (previous message) */
18608 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].timestamp !=
18609 time_old) {
18610 /* ... save timestamp info for the calculation of the RX status
18611 during the consecutive sample hit*/
18612 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].timestamp;
18613
18614 /* ... set the processed flag to one */
18615 L4_MABX_B.SFunction1_o4_i = 1.0;
18616 L4_MABX_B.SFunction1_o5_dq = (real_T)
18617 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].timestamp;
18618 L4_MABX_B.SFunction1_o6_d2 = (real_T)
18619 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].deltatime;
18620 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x302].data;
18621
18622 /* Decode CAN message */
18623 {
18624 {
18625 rtican_Signal_t CAN_Sgn;
18626
18627 /* ...... "PX2_LaneEdgeLeftAngle" (0|16, standard signal, signed int, little endian) */
18628 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18629 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
18630 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18631 if (CAN_Sgn.SignedSgn >> 15) {
18632 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18633 }
18634
18635 L4_MABX_B.SFunction1_o1_lx = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
18636
18637 /* ...... "PX2_LaneEdgeLeftNumPoints" (16|8, standard signal, unsigned int, little endian) */
18638 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18639 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18640 L4_MABX_B.SFunction1_o2_er = ((real_T) CAN_Sgn.UnsignedSgn);
18641
18642 /* ...... "PX2_LaneEdgeLeftPosition" (24|16, standard signal, signed int, little endian) */
18643 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18644 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
18645 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18646 if (CAN_Sgn.SignedSgn >> 15) {
18647 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18648 }
18649
18650 L4_MABX_B.SFunction1_o3_jg = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn) );
18651 }
18652 }
18653 } else {
18654 /* set RX status to 0 because no new message has arrived */
18655 L4_MABX_B.SFunction1_o4_i = 0.0;
18656 }
18657 }
18658 }
18659
18660 /* End of Outputs for SubSystem: '<S607>/PX2_LaneEdgeLeft' */
18661
18662 /* DataTypeConversion: '<S607>/Data Type Conversion1' */
18663 L4_MABX_B.RX_delta_time_bq = L4_MABX_B.SFunction1_o6_d2;
18664
18665 /* DataTypeConversion: '<S607>/Data Type Conversion10' */
18666 L4_MABX_B.RX_delta_time_ko = L4_MABX_B.SFunction1_o7_l;
18667
18668 /* DataTypeConversion: '<S607>/Data Type Conversion2' */
18669 L4_MABX_B.RX_status_oq = (L4_MABX_B.SFunction1_o4_i != 0.0);
18670
18671 /* DataTypeConversion: '<S607>/Data Type Conversion3' */
18672 L4_MABX_B.RX_time_dd = L4_MABX_B.SFunction1_o5_dq;
18673
18674 /* Outputs for Enabled SubSystem: '<S607>/PX2_LaneEdgeRight' incorporates:
18675 * EnablePort: '<S609>/Enable'
18676 */
18677 /* Constant: '<S433>/Constant' */
18678 if (L4_MABX_P.Constant_Value_jo) {
18679 /* S-Function (rti_commonblock): '<S609>/S-Function1' */
18680 /* This comment workarounds a code generation problem */
18681
18682 /* dSPACE RTICAN RX Message Block: "PX2_LaneEdgeRight" Id:771 */
18683 {
18684 UInt32 *CAN_Msg;
18685 static dsfloat time_old = 0.0;
18686
18687 /* Read status and timestamp info (previous message) */
18688 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].timestamp !=
18689 time_old) {
18690 /* ... save timestamp info for the calculation of the RX status
18691 during the consecutive sample hit*/
18692 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].timestamp;
18693
18694 /* ... set the processed flag to one */
18695 L4_MABX_B.SFunction1_o4_gs = 1.0;
18696 L4_MABX_B.SFunction1_o5_h = (real_T)
18697 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].timestamp;
18698 L4_MABX_B.SFunction1_o6_e = (real_T)
18699 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].deltatime;
18700 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x303].data;
18701
18702 /* Decode CAN message */
18703 {
18704 {
18705 rtican_Signal_t CAN_Sgn;
18706
18707 /* ...... "PX2_LaneEdgeRightAngle" (0|16, standard signal, signed int, little endian) */
18708 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18709 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
18710 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18711 if (CAN_Sgn.SignedSgn >> 15) {
18712 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18713 }
18714
18715 L4_MABX_B.SFunction1_o1_er = 0.01 * ( ((real_T) CAN_Sgn.SignedSgn) );
18716
18717 /* ...... "PX2_LaneEdgeRightNumPoints" (16|8, standard signal, unsigned int, little endian) */
18718 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18719 CAN_Sgn.UnsignedSgn &= 0x000000FF;
18720 L4_MABX_B.SFunction1_o2_ia = ((real_T) CAN_Sgn.UnsignedSgn);
18721
18722 /* ...... "PX2_LaneEdgeRightPosition" (24|16, standard signal, signed int, little endian) */
18723 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
18724 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[4];
18725 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18726 if (CAN_Sgn.SignedSgn >> 15) {
18727 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18728 }
18729
18730 L4_MABX_B.SFunction1_o3_oq = 0.001 * ( ((real_T) CAN_Sgn.SignedSgn) );
18731 }
18732 }
18733 } else {
18734 /* set RX status to 0 because no new message has arrived */
18735 L4_MABX_B.SFunction1_o4_gs = 0.0;
18736 }
18737 }
18738 }
18739
18740 /* End of Outputs for SubSystem: '<S607>/PX2_LaneEdgeRight' */
18741
18742 /* DataTypeConversion: '<S607>/Data Type Conversion4' */
18743 L4_MABX_B.RX_delta_time_d = L4_MABX_B.SFunction1_o6_e;
18744
18745 /* DataTypeConversion: '<S607>/Data Type Conversion5' */
18746 L4_MABX_B.RX_status_gr = (L4_MABX_B.SFunction1_o4_gs != 0.0);
18747
18748 /* DataTypeConversion: '<S607>/Data Type Conversion6' */
18749 L4_MABX_B.RX_time_lg = L4_MABX_B.SFunction1_o5_h;
18750
18751 /* DataTypeConversion: '<S607>/Data Type Conversion8' */
18752 L4_MABX_B.RX_status_ab = (L4_MABX_B.SFunction1_o5_c != 0.0);
18753
18754 /* DataTypeConversion: '<S607>/Data Type Conversion9' */
18755 L4_MABX_B.RX_time_ag = L4_MABX_B.SFunction1_o6_im;
18756
18757 /* Switch: '<S611>/Switch' */
18758 if (L4_MABX_B.If_Then_Else.Switch) {
18759 /* DataTypeConversion: '<S611>/Data Type Conversion8' */
18760 L4_MABX_B.RX_status_cp = (L4_MABX_B.SFunction1_o3_bb != 0.0);
18761 L4_MABX_B.RX_status_oql = L4_MABX_B.RX_status_cp;
18762
18763 /* DataTypeConversion: '<S611>/Data Type Conversion9' */
18764 L4_MABX_B.RX_time_jv = L4_MABX_B.SFunction1_o4_d2;
18765 L4_MABX_B.RX_time_mh = L4_MABX_B.RX_time_jv;
18766
18767 /* DataTypeConversion: '<S611>/Data Type Conversion10' */
18768 L4_MABX_B.RX_delta_time_bo = L4_MABX_B.SFunction1_o5_j1;
18769 L4_MABX_B.RX_delta_time_ft = L4_MABX_B.RX_delta_time_bo;
18770 } else {
18771 /* DataTypeConversion: '<S611>/Data Type Conversion3' */
18772 L4_MABX_B.RX_status_be = (L4_MABX_B.SFunction1_o3_cu != 0.0);
18773 L4_MABX_B.RX_status_oql = L4_MABX_B.RX_status_be;
18774
18775 /* DataTypeConversion: '<S611>/Data Type Conversion2' */
18776 L4_MABX_B.RX_time_jk = L4_MABX_B.SFunction1_o4_k;
18777 L4_MABX_B.RX_time_mh = L4_MABX_B.RX_time_jk;
18778
18779 /* DataTypeConversion: '<S611>/Data Type Conversion1' */
18780 L4_MABX_B.RX_delta_time_kh = L4_MABX_B.SFunction1_o5_j;
18781 L4_MABX_B.RX_delta_time_ft = L4_MABX_B.RX_delta_time_kh;
18782 }
18783
18784 /* DataTypeConversion: '<S614>/Data Type Conversion1' */
18785 L4_MABX_B.XPR1ControlStatus = L4_MABX_B.SFunction1_o6_d;
18786
18787 /* DataTypeConversion: '<S614>/Data Type Conversion10' */
18788 L4_MABX_B.RX_delta_time_b0 = L4_MABX_B.SFunction1_o13_l;
18789
18790 /* DataTypeConversion: '<S614>/Data Type Conversion2' */
18791 L4_MABX_B.XPR2ControlStatus = L4_MABX_B.SFunction1_o7_io;
18792
18793 /* DataTypeConversion: '<S614>/Data Type Conversion3' */
18794 L4_MABX_B.XPR3ControlStatus = L4_MABX_B.SFunction1_o8_g;
18795
18796 /* DataTypeConversion: '<S614>/Data Type Conversion8' */
18797 L4_MABX_B.RX_status_in = (L4_MABX_B.SFunction1_o11_a != 0.0);
18798
18799 /* DataTypeConversion: '<S614>/Data Type Conversion9' */
18800 L4_MABX_B.RX_time_fk = L4_MABX_B.SFunction1_o12_i;
18801
18802 /* DataTypeConversion: '<S616>/Data Type Conversion10' */
18803 L4_MABX_B.RX_delta_time_ig = L4_MABX_B.SFunction1_o10_a;
18804
18805 /* DataTypeConversion: '<S616>/Data Type Conversion8' */
18806 L4_MABX_B.RX_status_cc = (L4_MABX_B.SFunction1_o8_a != 0.0);
18807
18808 /* DataTypeConversion: '<S616>/Data Type Conversion9' */
18809 L4_MABX_B.RX_time_mk4 = L4_MABX_B.SFunction1_o9_aw;
18810
18811 /* Outputs for Enabled SubSystem: '<S618>/PX2_MapLaneEgoLeft' incorporates:
18812 * EnablePort: '<S619>/Enable'
18813 */
18814 /* Constant: '<S437>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
18815 if (L4_MABX_P.CAN_RXEnable_PX2_MapLaneEgoLeft) {
18816 /* S-Function (rti_commonblock): '<S619>/S-Function1' */
18817 /* This comment workarounds a code generation problem */
18818
18819 /* dSPACE RTICAN RX Message Block: "PX2_MapLaneEgoLeft" Id:1542 */
18820 {
18821 UInt32 *CAN_Msg;
18822 static dsfloat time_old = 0.0;
18823
18824 /* Read status and timestamp info (previous message) */
18825 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].timestamp !=
18826 time_old) {
18827 /* ... save timestamp info for the calculation of the RX status
18828 during the consecutive sample hit*/
18829 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].timestamp;
18830
18831 /* ... set the processed flag to one */
18832 L4_MABX_B.SFunction1_o7_e4 = 1.0;
18833 L4_MABX_B.SFunction1_o8_fv = (real_T)
18834 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].timestamp;
18835 L4_MABX_B.SFunction1_o9_h = (real_T)
18836 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].deltatime;
18837 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x606].data;
18838
18839 /* Decode CAN message */
18840 {
18841 {
18842 rtican_Signal_t CAN_Sgn;
18843
18844 /* ...... "PX2_MapLaneNearPos" (0|16, standard signal, signed int, little endian) */
18845 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18846 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
18847 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18848 if (CAN_Sgn.SignedSgn >> 15) {
18849 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18850 }
18851
18852 L4_MABX_B.SFunction1_o1_aw = 0.00390625 * ( ((real_T)
18853 CAN_Sgn.SignedSgn) );
18854
18855 /* ...... "PX2_MapLaneMidPos" (16|16, standard signal, signed int, little endian) */
18856 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18857 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
18858 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18859 if (CAN_Sgn.SignedSgn >> 15) {
18860 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18861 }
18862
18863 L4_MABX_B.SFunction1_o2_jd = 0.00390625 * ( ((real_T)
18864 CAN_Sgn.SignedSgn) );
18865
18866 /* ...... "PX2_MapLaneFarPos" (32|16, standard signal, signed int, little endian) */
18867 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
18868 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
18869 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18870 if (CAN_Sgn.SignedSgn >> 15) {
18871 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18872 }
18873
18874 L4_MABX_B.SFunction1_o3_hj = 0.00390625 * ( ((real_T)
18875 CAN_Sgn.SignedSgn) );
18876
18877 /* ...... "PX2_EgoLaneNearPosValid" (48|2, standard signal, unsigned int, little endian) */
18878 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18879 CAN_Sgn.UnsignedSgn &= 0x00000003;
18880 L4_MABX_B.SFunction1_o4_es = ((real_T) CAN_Sgn.UnsignedSgn);
18881
18882 /* ...... "PX2_EgoLaneMidPosValid" (50|2, standard signal, unsigned int, little endian) */
18883 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18884 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18885 CAN_Sgn.UnsignedSgn &= 0x00000003;
18886 L4_MABX_B.SFunction1_o5_d = ((real_T) CAN_Sgn.UnsignedSgn);
18887
18888 /* ...... "PX2_EgoLaneFarPosValid" (52|2, standard signal, unsigned int, little endian) */
18889 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18890 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18891 CAN_Sgn.UnsignedSgn &= 0x00000003;
18892 L4_MABX_B.SFunction1_o6_a = ((real_T) CAN_Sgn.UnsignedSgn);
18893 }
18894 }
18895 } else {
18896 /* set RX status to 0 because no new message has arrived */
18897 L4_MABX_B.SFunction1_o7_e4 = 0.0;
18898 }
18899 }
18900 }
18901
18902 /* End of Constant: '<S437>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
18903 /* End of Outputs for SubSystem: '<S618>/PX2_MapLaneEgoLeft' */
18904
18905 /* DataTypeConversion: '<S618>/Data Type Conversion10' */
18906 L4_MABX_B.RX_delta_time_cd = L4_MABX_B.SFunction1_o9_h;
18907
18908 /* DataTypeConversion: '<S618>/Data Type Conversion8' */
18909 L4_MABX_B.RX_status_g4 = (L4_MABX_B.SFunction1_o7_e4 != 0.0);
18910
18911 /* DataTypeConversion: '<S618>/Data Type Conversion9' */
18912 L4_MABX_B.RX_time_pz = L4_MABX_B.SFunction1_o8_fv;
18913
18914 /* Outputs for Enabled SubSystem: '<S620>/PX2_MapLaneEgoRight' incorporates:
18915 * EnablePort: '<S621>/Enable'
18916 */
18917 /* Constant: '<S438>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
18918 if (L4_MABX_P.CAN_RXEnable_PX2_MapLaneEgoLe_b) {
18919 /* S-Function (rti_commonblock): '<S621>/S-Function1' */
18920 /* This comment workarounds a code generation problem */
18921
18922 /* dSPACE RTICAN RX Message Block: "PX2_MapLaneEgoRight" Id:1541 */
18923 {
18924 UInt32 *CAN_Msg;
18925 static dsfloat time_old = 0.0;
18926
18927 /* Read status and timestamp info (previous message) */
18928 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].timestamp !=
18929 time_old) {
18930 /* ... save timestamp info for the calculation of the RX status
18931 during the consecutive sample hit*/
18932 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].timestamp;
18933
18934 /* ... set the processed flag to one */
18935 L4_MABX_B.SFunction1_o7_i = 1.0;
18936 L4_MABX_B.SFunction1_o8_f = (real_T)
18937 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].timestamp;
18938 L4_MABX_B.SFunction1_o9_l = (real_T)
18939 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].deltatime;
18940 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x605].data;
18941
18942 /* Decode CAN message */
18943 {
18944 {
18945 rtican_Signal_t CAN_Sgn;
18946
18947 /* ...... "PX2_MapLaneNearPos" (0|16, standard signal, signed int, little endian) */
18948 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
18949 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
18950 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18951 if (CAN_Sgn.SignedSgn >> 15) {
18952 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18953 }
18954
18955 L4_MABX_B.SFunction1_o1_d1 = 0.00390625 * ( ((real_T)
18956 CAN_Sgn.SignedSgn) );
18957
18958 /* ...... "PX2_MapLaneMidPos" (16|16, standard signal, signed int, little endian) */
18959 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
18960 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
18961 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18962 if (CAN_Sgn.SignedSgn >> 15) {
18963 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18964 }
18965
18966 L4_MABX_B.SFunction1_o2_is = 0.00390625 * ( ((real_T)
18967 CAN_Sgn.SignedSgn) );
18968
18969 /* ...... "PX2_MapLaneFarPos" (32|16, standard signal, signed int, little endian) */
18970 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
18971 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
18972 CAN_Sgn.SignedSgn &= 0x0000FFFF;
18973 if (CAN_Sgn.SignedSgn >> 15) {
18974 CAN_Sgn.SignedSgn |= 0xFFFF0000;
18975 }
18976
18977 L4_MABX_B.SFunction1_o3_h2 = 0.00390625 * ( ((real_T)
18978 CAN_Sgn.SignedSgn) );
18979
18980 /* ...... "PX2_EgoLaneNearPosValid" (48|2, standard signal, unsigned int, little endian) */
18981 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18982 CAN_Sgn.UnsignedSgn &= 0x00000003;
18983 L4_MABX_B.SFunction1_o4_gj = ((real_T) CAN_Sgn.UnsignedSgn);
18984
18985 /* ...... "PX2_EgoLaneMidPosValid" (50|2, standard signal, unsigned int, little endian) */
18986 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18987 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
18988 CAN_Sgn.UnsignedSgn &= 0x00000003;
18989 L4_MABX_B.SFunction1_o5_i = ((real_T) CAN_Sgn.UnsignedSgn);
18990
18991 /* ...... "PX2_EgoLaneFarPosValid" (52|2, standard signal, unsigned int, little endian) */
18992 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
18993 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
18994 CAN_Sgn.UnsignedSgn &= 0x00000003;
18995 L4_MABX_B.SFunction1_o6_m = ((real_T) CAN_Sgn.UnsignedSgn);
18996 }
18997 }
18998 } else {
18999 /* set RX status to 0 because no new message has arrived */
19000 L4_MABX_B.SFunction1_o7_i = 0.0;
19001 }
19002 }
19003 }
19004
19005 /* End of Constant: '<S438>/CAN_RX-Enable_PX2_MapLaneEgoLeft' */
19006 /* End of Outputs for SubSystem: '<S620>/PX2_MapLaneEgoRight' */
19007
19008 /* DataTypeConversion: '<S620>/Data Type Conversion10' */
19009 L4_MABX_B.RX_delta_time_hg = L4_MABX_B.SFunction1_o9_l;
19010
19011 /* DataTypeConversion: '<S620>/Data Type Conversion8' */
19012 L4_MABX_B.RX_status_m0 = (L4_MABX_B.SFunction1_o7_i != 0.0);
19013
19014 /* DataTypeConversion: '<S620>/Data Type Conversion9' */
19015 L4_MABX_B.RX_time_g = L4_MABX_B.SFunction1_o8_f;
19016
19017 /* Outputs for Enabled SubSystem: '<S622>/PX2_EgoLanePos' incorporates:
19018 * EnablePort: '<S623>/Enable'
19019 */
19020 /* Constant: '<S439>/Constant' */
19021 if (L4_MABX_P.Constant_Value_kr) {
19022 /* S-Function (rti_commonblock): '<S623>/S-Function1' */
19023 /* This comment workarounds a code generation problem */
19024
19025 /* dSPACE RTICAN RX Message Block: "PX2_EgoLanePos" Id:1540 */
19026 {
19027 UInt32 *CAN_Msg;
19028 static dsfloat time_old = 0.0;
19029
19030 /* Read status and timestamp info (previous message) */
19031 if (can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].timestamp !=
19032 time_old) {
19033 /* ... save timestamp info for the calculation of the RX status
19034 during the consecutive sample hit*/
19035 time_old = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].timestamp;
19036
19037 /* ... set the processed flag to one */
19038 L4_MABX_B.SFunction1_o7_n = 1.0;
19039 L4_MABX_B.SFunction1_o8_p = (real_T)
19040 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].timestamp;
19041 L4_MABX_B.SFunction1_o9_a = (real_T)
19042 can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].deltatime;
19043 CAN_Msg = can_type1_M3_C2_STD[CANTP1_M3_C2_RXSRVC_STD_0x604].data;
19044
19045 /* Decode CAN message */
19046 {
19047 {
19048 rtican_Signal_t CAN_Sgn;
19049
19050 /* ...... "PX2_EgoLaneNearPosErr" (0|16, standard signal, signed int, little endian) */
19051 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19052 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[1];
19053 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19054 if (CAN_Sgn.SignedSgn >> 15) {
19055 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19056 }
19057
19058 L4_MABX_B.SFunction1_o1_gi = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
19059
19060 /* ...... "PX2_EgoLaneMidPosErr" (16|16, standard signal, signed int, little endian) */
19061 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19062 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
19063 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19064 if (CAN_Sgn.SignedSgn >> 15) {
19065 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19066 }
19067
19068 L4_MABX_B.SFunction1_o2_a = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
19069
19070 /* ...... "PX2_EgoLaneFarPosErr" (32|16, standard signal, signed int, little endian) */
19071 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19072 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
19073 CAN_Sgn.SignedSgn &= 0x0000FFFF;
19074 if (CAN_Sgn.SignedSgn >> 15) {
19075 CAN_Sgn.SignedSgn |= 0xFFFF0000;
19076 }
19077
19078 L4_MABX_B.SFunction1_o3_br = 0.1 * ( ((real_T) CAN_Sgn.SignedSgn) );
19079
19080 /* ...... "PX2_EgoLaneNearPosValid" (48|2, standard signal, unsigned int, little endian) */
19081 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19082 CAN_Sgn.UnsignedSgn &= 0x00000003;
19083 L4_MABX_B.SFunction1_o4_cbx = ((real_T) CAN_Sgn.UnsignedSgn);
19084
19085 /* ...... "PX2_EgoLaneMidPosValid" (50|2, standard signal, unsigned int, little endian) */
19086 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19087 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 2;
19088 CAN_Sgn.UnsignedSgn &= 0x00000003;
19089 L4_MABX_B.SFunction1_o5_p = ((real_T) CAN_Sgn.UnsignedSgn);
19090
19091 /* ...... "PX2_EgoLaneFarPosValid" (52|2, standard signal, unsigned int, little endian) */
19092 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19093 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) >> 4;
19094 CAN_Sgn.UnsignedSgn &= 0x00000003;
19095 L4_MABX_B.SFunction1_o6_b = ((real_T) CAN_Sgn.UnsignedSgn);
19096 }
19097 }
19098 } else {
19099 /* set RX status to 0 because no new message has arrived */
19100 L4_MABX_B.SFunction1_o7_n = 0.0;
19101 }
19102 }
19103 }
19104
19105 /* End of Constant: '<S439>/Constant' */
19106 /* End of Outputs for SubSystem: '<S622>/PX2_EgoLanePos' */
19107
19108 /* DataTypeConversion: '<S622>/Data Type Conversion10' */
19109 L4_MABX_B.RX_delta_time_jf = L4_MABX_B.SFunction1_o9_a;
19110
19111 /* DataTypeConversion: '<S622>/Data Type Conversion8' */
19112 L4_MABX_B.RX_status_ec = (L4_MABX_B.SFunction1_o7_n != 0.0);
19113
19114 /* DataTypeConversion: '<S622>/Data Type Conversion9' */
19115 L4_MABX_B.RX_time_j = L4_MABX_B.SFunction1_o8_p;
19116
19117 /* DataTypeConversion: '<S624>/Data Type Conversion10' */
19118 L4_MABX_B.RX_delta_time_ek = L4_MABX_B.SFunction1_o7_d;
19119
19120 /* DataTypeConversion: '<S624>/Data Type Conversion9' */
19121 L4_MABX_B.RX_time_fo = L4_MABX_B.SFunction1_o6_i;
19122
19123 /* DataTypeConversion: '<S626>/Data Type Conversion10' */
19124 L4_MABX_B.RX_delta_time_ha = L4_MABX_B.SFunction1_o28;
19125
19126 /* DataTypeConversion: '<S626>/Data Type Conversion8' */
19127 L4_MABX_B.RX_status_br = (L4_MABX_B.SFunction1_o26 != 0.0);
19128
19129 /* DataTypeConversion: '<S626>/Data Type Conversion9' */
19130 L4_MABX_B.RX_time_fj = L4_MABX_B.SFunction1_o27;
19131
19132 /* DataTypeConversion: '<S628>/Data Type Conversion10' */
19133 L4_MABX_B.RX_delta_time_gw = L4_MABX_B.SFunction1_o10;
19134
19135 /* DataTypeConversion: '<S628>/Data Type Conversion8' */
19136 L4_MABX_B.RX_status_aby = (L4_MABX_B.SFunction1_o8_i != 0.0);
19137
19138 /* DataTypeConversion: '<S628>/Data Type Conversion9' */
19139 L4_MABX_B.RX_time_pw = L4_MABX_B.SFunction1_o9_e;
19140
19141 /* DataTypeConversion: '<S630>/Data Type Conversion10' */
19142 L4_MABX_B.RX_delta_time_hgq = L4_MABX_B.SFunction1_o9;
19143
19144 /* DataTypeConversion: '<S630>/Data Type Conversion8' */
19145 L4_MABX_B.RX_status_ms = (L4_MABX_B.SFunction1_o7_e != 0.0);
19146
19147 /* DataTypeConversion: '<S630>/Data Type Conversion9' */
19148 L4_MABX_B.RX_time_oy = L4_MABX_B.SFunction1_o8_o;
19149
19150 /* Outputs for Enabled SubSystem: '<S632>/VEP1' incorporates:
19151 * EnablePort: '<S633>/Enable'
19152 */
19153 /* Constant: '<S444>/Constant' */
19154 if (L4_MABX_P.Constant_Value_c > 0.0) {
19155 /* S-Function (rti_commonblock): '<S633>/S-Function1' */
19156 /* This comment workarounds a code generation problem */
19157
19158 /* dSPACE RTICAN RX Message Block: "VEP1" Id:419362563 */
19159 {
19160 UInt32 *CAN_Msg;
19161 static dsfloat time_old = 0.0;
19162
19163 /* Read status and timestamp info (previous message) */
19164 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].timestamp !=
19165 time_old) {
19166 /* ... save timestamp info for the calculation of the RX status
19167 during the consecutive sample hit*/
19168 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].
19169 timestamp;
19170
19171 /* ... set the processed flag to one */
19172 L4_MABX_B.SFunction1_o6 = 1.0;
19173 L4_MABX_B.SFunction1_o7 = (real_T)
19174 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].timestamp;
19175 L4_MABX_B.SFunction1_o8 = (real_T)
19176 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].deltatime;
19177 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FEF703].data;
19178
19179 /* Decode CAN message */
19180 {
19181 {
19182 rtican_Signal_t CAN_Sgn;
19183
19184 /* ...... "NetBatteryCurrent" (0|8, standard signal, unsigned int, little endian) */
19185 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19186 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19187 L4_MABX_B.SFunction1_o1_b1 = -125 + ( ((real_T) CAN_Sgn.UnsignedSgn)
19188 );
19189
19190 /* ...... "AltCurrent" (8|8, standard signal, unsigned int, little endian) */
19191 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
19192 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19193 L4_MABX_B.SFunction1_o2_j3 = ((real_T) CAN_Sgn.UnsignedSgn);
19194
19195 /* ...... "ChargingSystemPotential" (16|16, standard signal, unsigned int, little endian) */
19196 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19197 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[3];
19198 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
19199 L4_MABX_B.SFunction1_o3_pt = 0.05 * ( ((real_T) CAN_Sgn.UnsignedSgn)
19200 );
19201
19202 /* ...... "BatteryPotential_PowerInput1" (32|16, standard signal, unsigned int, little endian) */
19203 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19204 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[5];
19205 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
19206 L4_MABX_B.SFunction1_o4_fn = 0.05 * ( ((real_T) CAN_Sgn.UnsignedSgn)
19207 );
19208
19209 /* ...... "KeyswitchBatteryPotential" (48|16, standard signal, unsigned int, little endian) */
19210 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19211 CAN_Sgn.SgnBytes.Byte1 = CAN_Msg[7];
19212 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
19213 L4_MABX_B.SFunction1_o5 = 0.05 * ( ((real_T) CAN_Sgn.UnsignedSgn) );
19214 }
19215 }
19216 } else {
19217 /* set RX status to 0 because no new message has arrived */
19218 L4_MABX_B.SFunction1_o6 = 0.0;
19219 }
19220 }
19221 }
19222
19223 /* End of Constant: '<S444>/Constant' */
19224 /* End of Outputs for SubSystem: '<S632>/VEP1' */
19225
19226 /* DataTypeConversion: '<S632>/Data Type Conversion1' */
19227 L4_MABX_B.PitchAngleExRange_n = L4_MABX_B.SFunction1_o1_b1;
19228
19229 /* DataTypeConversion: '<S632>/Data Type Conversion10' */
19230 L4_MABX_B.RX_delta_time_ns = L4_MABX_B.SFunction1_o8;
19231
19232 /* DataTypeConversion: '<S632>/Data Type Conversion2' */
19233 L4_MABX_B.AltCurrent = L4_MABX_B.SFunction1_o2_j3;
19234
19235 /* DataTypeConversion: '<S632>/Data Type Conversion3' */
19236 L4_MABX_B.ChargingSystemPotential = L4_MABX_B.SFunction1_o3_pt;
19237
19238 /* DataTypeConversion: '<S632>/Data Type Conversion4' */
19239 L4_MABX_B.BatteryPotential_PowerInput1 = L4_MABX_B.SFunction1_o4_fn;
19240
19241 /* DataTypeConversion: '<S632>/Data Type Conversion5' */
19242 L4_MABX_B.KeyswitchBatteryPotential = L4_MABX_B.SFunction1_o5;
19243
19244 /* DataTypeConversion: '<S632>/Data Type Conversion8' */
19245 L4_MABX_B.RX_status_ee = (L4_MABX_B.SFunction1_o6 != 0.0);
19246
19247 /* DataTypeConversion: '<S632>/Data Type Conversion9' */
19248 L4_MABX_B.RX_time_k3g = L4_MABX_B.SFunction1_o7;
19249
19250 /* RelationalOperator: '<S635>/Relational Operator2' incorporates:
19251 * Constant: '<S635>/TRUCK_166_VIN_CPV'
19252 */
19253 L4_MABX_B.RelationalOperator2[0] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[0] !=
19254 L4_MABX_B.DataTypeConversion_kp);
19255 L4_MABX_B.RelationalOperator2[1] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[1] !=
19256 L4_MABX_B.DataTypeConversion1_oe);
19257 L4_MABX_B.RelationalOperator2[2] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[2] !=
19258 L4_MABX_B.DataTypeConversion2_fb3);
19259 L4_MABX_B.RelationalOperator2[3] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[3] !=
19260 L4_MABX_B.DataTypeConversion3_ee);
19261 L4_MABX_B.RelationalOperator2[4] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[4] !=
19262 L4_MABX_B.DataTypeConversion4_i5);
19263 L4_MABX_B.RelationalOperator2[5] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[5] !=
19264 L4_MABX_B.DataTypeConversion5_l);
19265 L4_MABX_B.RelationalOperator2[6] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[6] !=
19266 L4_MABX_B.DataTypeConversion6_h3);
19267 L4_MABX_B.RelationalOperator2[7] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[7] !=
19268 L4_MABX_B.DataTypeConversion7_ki);
19269 L4_MABX_B.RelationalOperator2[8] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[8] !=
19270 L4_MABX_B.DataTypeConversion8_d);
19271 L4_MABX_B.RelationalOperator2[9] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[9] !=
19272 L4_MABX_B.DataTypeConversion9_eo);
19273 L4_MABX_B.RelationalOperator2[10] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[10] !=
19274 L4_MABX_B.DataTypeConversion10_n2);
19275 L4_MABX_B.RelationalOperator2[11] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[11] !=
19276 L4_MABX_B.DataTypeConversion11_o);
19277 L4_MABX_B.RelationalOperator2[12] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[12] !=
19278 L4_MABX_B.DataTypeConversion12);
19279 L4_MABX_B.RelationalOperator2[13] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[13] !=
19280 L4_MABX_B.DataTypeConversion14_i);
19281 L4_MABX_B.RelationalOperator2[14] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[14] !=
19282 L4_MABX_B.DataTypeConversion13_k);
19283 L4_MABX_B.RelationalOperator2[15] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[15] !=
19284 L4_MABX_B.DataTypeConversion15_b);
19285 L4_MABX_B.RelationalOperator2[16] = (L4_MABX_P.TRUCK_166_VIN_CPV_Value[16] !=
19286 L4_MABX_B.DataTypeConversion16_k);
19287
19288 /* Sum: '<S635>/Add1' */
19289 tmp = 0U;
19290 for (i = 0; i < 17; i++) {
19291 tmp += L4_MABX_B.RelationalOperator2[i];
19292 }
19293
19294 L4_MABX_B.Add1_a = (uint8_T)tmp;
19295
19296 /* End of Sum: '<S635>/Add1' */
19297
19298 /* RelationalOperator: '<S640>/Compare' incorporates:
19299 * Constant: '<S640>/Constant'
19300 */
19301 L4_MABX_B.Compare_p = (L4_MABX_B.Add1_a == L4_MABX_P.Constant_Value_mc);
19302
19303 /* UnitDelay: '<S635>/Unit_Delay2' */
19304 L4_MABX_B.Unit_Delay2_m = L4_MABX_DW.Unit_Delay2_DSTATE_o;
19305
19306 /* Logic: '<S635>/Logical Operator1' */
19307 L4_MABX_B.LogicalOperator1_b = (L4_MABX_B.Unit_Delay2_m && L4_MABX_B.Compare_p);
19308
19309 /* Logic: '<S641>/Logical Operator2' */
19310 L4_MABX_B.LogicalOperator2_g = !L4_MABX_B.LogicalOperator1_k;
19311
19312 /* UnitDelay: '<S635>/Unit_Delay1' */
19313 L4_MABX_B.Unit_Delay1_ps = L4_MABX_DW.Unit_Delay1_DSTATE_hq;
19314
19315 /* Logic: '<S642>/Logical Operator3' */
19316 L4_MABX_B.LogicalOperator3_b = !L4_MABX_B.Unit_Delay1_ps;
19317
19318 /* UnitDelay: '<S642>/Unit_Delay' */
19319 L4_MABX_B.Unit_Delay_i = L4_MABX_DW.Unit_Delay_DSTATE_n;
19320
19321 /* Logic: '<S642>/Logical Operator' */
19322 L4_MABX_B.LogicalOperator_oz = (L4_MABX_B.LogicalOperator3_b &&
19323 L4_MABX_B.Unit_Delay_i);
19324
19325 /* Logic: '<S642>/Logical Operator1' */
19326 L4_MABX_B.LogicalOperator1_l = (L4_MABX_B.LogicalOperator1_b ||
19327 L4_MABX_B.LogicalOperator_oz);
19328
19329 /* Logic: '<S642>/Logical Operator2' */
19330 L4_MABX_B.LogicalOperator2_e = !L4_MABX_B.LogicalOperator1_l;
19331
19332 /* Constant: '<S401>/Constant2' */
19333 L4_MABX_B.PX2_HeartBeat = L4_MABX_P.Constant2_Value_p0;
19334
19335 /* RelationalOperator: '<S679>/Operator' incorporates:
19336 * Constant: '<S455>/Constant1'
19337 */
19338 L4_MABX_B.Operator_jl = (L4_MABX_B.DataTypeConversion_cg[0] ==
19339 L4_MABX_P.Constant1_Value_hy);
19340
19341 /* Outputs for Enabled SubSystem: '<S455>/Decode_TPCM_CTS' incorporates:
19342 * EnablePort: '<S674>/Enable'
19343 */
19344 if (L4_MABX_B.Operator_jl) {
19345 /* SignalConversion: '<S691>/Signal Conversion' */
19346 L4_MABX_B.SPN2556_ControlByte_jy = L4_MABX_B.DataTypeConversion_cg[0];
19347
19348 /* SignalConversion: '<S692>/Signal Conversion' */
19349 L4_MABX_B.SPN2561_NumberOfPacketsThatCanB = L4_MABX_B.DataTypeConversion_cg
19350 [1];
19351
19352 /* SignalConversion: '<S693>/Signal Conversion' */
19353 L4_MABX_B.SPN2562_NextPacketNumberToBeSen = L4_MABX_B.DataTypeConversion_cg
19354 [2];
19355
19356 /* DataTypeConversion: '<S694>/Data Type Conversion' */
19357 L4_MABX_B.DataTypeConversion_o = L4_MABX_B.DataTypeConversion_cg[5];
19358
19359 /* DataTypeConversion: '<S694>/Data Type Conversion1' */
19360 L4_MABX_B.DataTypeConversion1_e3 = L4_MABX_B.DataTypeConversion_cg[6];
19361
19362 /* DataTypeConversion: '<S694>/Data Type Conversion2' */
19363 L4_MABX_B.DataTypeConversion2_ln = L4_MABX_B.DataTypeConversion_cg[7];
19364
19365 /* ArithShift: '<S694>/Shift Arithmetic1' */
19366 L4_MABX_B.ShiftArithmetic1_c = L4_MABX_B.DataTypeConversion1_e3 << 8;
19367
19368 /* ArithShift: '<S694>/Shift Arithmetic2' */
19369 L4_MABX_B.ShiftArithmetic2_jc = L4_MABX_B.DataTypeConversion2_ln << 16;
19370
19371 /* S-Function (sfix_bitop): '<S695>/Operator' */
19372 L4_MABX_B.Operator_f1 = L4_MABX_B.DataTypeConversion_o |
19373 L4_MABX_B.ShiftArithmetic1_c | L4_MABX_B.ShiftArithmetic2_jc;
19374
19375 /* DataTypeConversion: '<S695>/DataType' */
19376 L4_MABX_B.DataType_fd = L4_MABX_B.Operator_f1;
19377 }
19378
19379 /* End of Outputs for SubSystem: '<S455>/Decode_TPCM_CTS' */
19380
19381 /* RelationalOperator: '<S682>/Operator' incorporates:
19382 * Constant: '<S455>/Constant4'
19383 */
19384 L4_MABX_B.Operator_kx = (L4_MABX_B.DataTypeConversion_cg[0] ==
19385 L4_MABX_P.Constant4_Value_oq);
19386
19387 /* Outputs for Enabled SubSystem: '<S455>/Decode_TPCM_ConnectionAbort' incorporates:
19388 * EnablePort: '<S675>/Enable'
19389 */
19390 if (L4_MABX_B.Operator_kx) {
19391 /* SignalConversion: '<S697>/Signal Conversion' */
19392 L4_MABX_B.SPN2556_ControlByte_d = L4_MABX_B.DataTypeConversion_cg[0];
19393
19394 /* SignalConversion: '<S698>/Signal Conversion' */
19395 L4_MABX_B.SPN2570_ConnectionAbortReason = L4_MABX_B.DataTypeConversion_cg[1];
19396
19397 /* DataTypeConversion: '<S699>/Data Type Conversion' */
19398 L4_MABX_B.DataTypeConversion_iu = L4_MABX_B.DataTypeConversion_cg[5];
19399
19400 /* DataTypeConversion: '<S699>/Data Type Conversion1' */
19401 L4_MABX_B.DataTypeConversion1_fs = L4_MABX_B.DataTypeConversion_cg[6];
19402
19403 /* DataTypeConversion: '<S699>/Data Type Conversion2' */
19404 L4_MABX_B.DataTypeConversion2_hwz = L4_MABX_B.DataTypeConversion_cg[7];
19405
19406 /* ArithShift: '<S699>/Shift Arithmetic1' */
19407 L4_MABX_B.ShiftArithmetic1_n = L4_MABX_B.DataTypeConversion1_fs << 8;
19408
19409 /* ArithShift: '<S699>/Shift Arithmetic2' */
19410 L4_MABX_B.ShiftArithmetic2_i = L4_MABX_B.DataTypeConversion2_hwz << 16;
19411
19412 /* S-Function (sfix_bitop): '<S700>/Operator' */
19413 L4_MABX_B.Operator_m = L4_MABX_B.DataTypeConversion_iu |
19414 L4_MABX_B.ShiftArithmetic1_n | L4_MABX_B.ShiftArithmetic2_i;
19415
19416 /* DataTypeConversion: '<S700>/DataType' */
19417 L4_MABX_B.DataType_i5 = L4_MABX_B.Operator_m;
19418 }
19419
19420 /* End of Outputs for SubSystem: '<S455>/Decode_TPCM_ConnectionAbort' */
19421
19422 /* RelationalOperator: '<S680>/Operator' incorporates:
19423 * Constant: '<S455>/Constant2'
19424 */
19425 L4_MABX_B.Operator_oh = (L4_MABX_B.DataTypeConversion_cg[0] ==
19426 L4_MABX_P.Constant2_Value_c2);
19427
19428 /* Outputs for Enabled SubSystem: '<S455>/Decode_TPCM_EndOfMessageAck' incorporates:
19429 * EnablePort: '<S676>/Enable'
19430 */
19431 if (L4_MABX_B.Operator_oh) {
19432 /* SignalConversion: '<S702>/Signal Conversion' */
19433 L4_MABX_B.SPN2556_ControlByte_j = L4_MABX_B.DataTypeConversion_cg[0];
19434
19435 /* DataTypeConversion: '<S703>/Data Type Conversion' */
19436 L4_MABX_B.DataTypeConversion_cv = L4_MABX_B.DataTypeConversion_cg[1];
19437
19438 /* DataTypeConversion: '<S703>/Data Type Conversion1' */
19439 L4_MABX_B.DataTypeConversion1_ak = L4_MABX_B.DataTypeConversion_cg[2];
19440
19441 /* ArithShift: '<S703>/Shift Arithmetic2' */
19442 L4_MABX_B.ShiftArithmetic2_mz = (uint16_T)(L4_MABX_B.DataTypeConversion1_ak <<
19443 8);
19444
19445 /* S-Function (sfix_bitop): '<S706>/Operator' */
19446 L4_MABX_B.Operator_k3 = (uint16_T)(L4_MABX_B.DataTypeConversion_cv |
19447 L4_MABX_B.ShiftArithmetic2_mz);
19448
19449 /* DataTypeConversion: '<S706>/DataType' */
19450 L4_MABX_B.DataType_bq = L4_MABX_B.Operator_k3;
19451
19452 /* SignalConversion: '<S704>/Signal Conversion' */
19453 L4_MABX_B.SPN2565_TotalNumberOfPackets = L4_MABX_B.DataTypeConversion_cg[3];
19454
19455 /* DataTypeConversion: '<S705>/Data Type Conversion' */
19456 L4_MABX_B.DataTypeConversion_ib = L4_MABX_B.DataTypeConversion_cg[5];
19457
19458 /* DataTypeConversion: '<S705>/Data Type Conversion1' */
19459 L4_MABX_B.DataTypeConversion1_f5 = L4_MABX_B.DataTypeConversion_cg[6];
19460
19461 /* DataTypeConversion: '<S705>/Data Type Conversion2' */
19462 L4_MABX_B.DataTypeConversion2_fb = L4_MABX_B.DataTypeConversion_cg[7];
19463
19464 /* ArithShift: '<S705>/Shift Arithmetic1' */
19465 L4_MABX_B.ShiftArithmetic1_i = L4_MABX_B.DataTypeConversion1_f5 << 8;
19466
19467 /* ArithShift: '<S705>/Shift Arithmetic2' */
19468 L4_MABX_B.ShiftArithmetic2_j = L4_MABX_B.DataTypeConversion2_fb << 16;
19469
19470 /* S-Function (sfix_bitop): '<S707>/Operator' */
19471 L4_MABX_B.Operator_f = L4_MABX_B.DataTypeConversion_ib |
19472 L4_MABX_B.ShiftArithmetic1_i | L4_MABX_B.ShiftArithmetic2_j;
19473
19474 /* DataTypeConversion: '<S707>/DataType' */
19475 L4_MABX_B.DataType_jy = L4_MABX_B.Operator_f;
19476 }
19477
19478 /* End of Outputs for SubSystem: '<S455>/Decode_TPCM_EndOfMessageAck' */
19479
19480 /* RelationalOperator: '<S678>/Operator' incorporates:
19481 * Constant: '<S455>/Constant'
19482 */
19483 L4_MABX_B.Operator_kq = (L4_MABX_B.DataTypeConversion_cg[0] ==
19484 L4_MABX_P.Constant_Value_ns);
19485
19486 /* Outputs for Enabled SubSystem: '<S455>/Decode_TPCM_RTS' incorporates:
19487 * EnablePort: '<S677>/Enable'
19488 */
19489 if (L4_MABX_B.Operator_kq) {
19490 /* SignalConversion: '<S709>/Signal Conversion' */
19491 L4_MABX_B.SPN2556_ControlByte = L4_MABX_B.DataTypeConversion_cg[0];
19492
19493 /* DataTypeConversion: '<S710>/Data Type Conversion' */
19494 L4_MABX_B.DataTypeConversion_fa = L4_MABX_B.DataTypeConversion_cg[1];
19495
19496 /* DataTypeConversion: '<S710>/Data Type Conversion1' */
19497 L4_MABX_B.DataTypeConversion1_bv = L4_MABX_B.DataTypeConversion_cg[2];
19498
19499 /* ArithShift: '<S710>/Shift Arithmetic2' */
19500 L4_MABX_B.ShiftArithmetic2_im = (uint16_T)(L4_MABX_B.DataTypeConversion1_bv <<
19501 8);
19502
19503 /* S-Function (sfix_bitop): '<S714>/Operator' */
19504 L4_MABX_B.Operator_mk = (uint16_T)(L4_MABX_B.DataTypeConversion_fa |
19505 L4_MABX_B.ShiftArithmetic2_im);
19506
19507 /* DataTypeConversion: '<S714>/DataType' */
19508 L4_MABX_B.DataType_ph = L4_MABX_B.Operator_mk;
19509
19510 /* SignalConversion: '<S711>/Signal Conversion' */
19511 L4_MABX_B.SPN2558_TotalNumberOfPackets = L4_MABX_B.DataTypeConversion_cg[3];
19512
19513 /* SignalConversion: '<S712>/Signal Conversion' */
19514 L4_MABX_B.SPN2559_MaximumNumberOfPackets = L4_MABX_B.DataTypeConversion_cg[4];
19515
19516 /* DataTypeConversion: '<S713>/Data Type Conversion' */
19517 L4_MABX_B.DataTypeConversion_n = L4_MABX_B.DataTypeConversion_cg[5];
19518
19519 /* DataTypeConversion: '<S713>/Data Type Conversion1' */
19520 L4_MABX_B.DataTypeConversion1_ar = L4_MABX_B.DataTypeConversion_cg[6];
19521
19522 /* DataTypeConversion: '<S713>/Data Type Conversion2' */
19523 L4_MABX_B.DataTypeConversion2_d = L4_MABX_B.DataTypeConversion_cg[7];
19524
19525 /* ArithShift: '<S713>/Shift Arithmetic1' */
19526 L4_MABX_B.ShiftArithmetic1 = L4_MABX_B.DataTypeConversion1_ar << 8;
19527
19528 /* ArithShift: '<S713>/Shift Arithmetic2' */
19529 L4_MABX_B.ShiftArithmetic2 = L4_MABX_B.DataTypeConversion2_d << 16;
19530
19531 /* S-Function (sfix_bitop): '<S715>/Operator' */
19532 L4_MABX_B.Operator_hy = L4_MABX_B.DataTypeConversion_n |
19533 L4_MABX_B.ShiftArithmetic1 | L4_MABX_B.ShiftArithmetic2;
19534
19535 /* DataTypeConversion: '<S715>/DataType' */
19536 L4_MABX_B.DataType_g = L4_MABX_B.Operator_hy;
19537 }
19538
19539 /* End of Outputs for SubSystem: '<S455>/Decode_TPCM_RTS' */
19540
19541 /* RelationalOperator: '<S575>/Operator' incorporates:
19542 * Constant: '<S430>/Constant'
19543 * Constant: '<S571>/Constant'
19544 */
19545 L4_MABX_B.Operator_i3 = (PROPB_REAX_CHANNEL_APV ==
19546 L4_MABX_P.Constant_Value_d3b);
19547
19548 /* Outputs for Enabled SubSystem: '<S568>/CAN_TYPE1_RX_M1_C1' incorporates:
19549 * EnablePort: '<S572>/Enable'
19550 */
19551 if (L4_MABX_B.Operator_i3) {
19552 /* S-Function (rti_commonblock): '<S572>/S-Function1' */
19553 /* This comment workarounds a code generation problem */
19554
19555 /* dSPACE RTICAN RX Message Block: "PropB_REAX_3_13" Id:419426579 */
19556 {
19557 UInt32 *CAN_Msg;
19558 static dsfloat time_old = 0.0;
19559
19560 /* Read status and timestamp info (previous message) */
19561 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].timestamp !=
19562 time_old) {
19563 /* ... save timestamp info for the calculation of the RX status
19564 during the consecutive sample hit*/
19565 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].
19566 timestamp;
19567
19568 /* ... set the processed flag to one */
19569 L4_MABX_B.SFunction1_o9_n2 = 1.0;
19570 L4_MABX_B.SFunction1_o10_ag = (real_T)
19571 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].timestamp;
19572 L4_MABX_B.SFunction1_o11_nf = (real_T)
19573 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].deltatime;
19574 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF113].data;
19575
19576 /* Decode CAN message */
19577 {
19578 {
19579 rtican_Signal_t CAN_Sgn;
19580
19581 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
19582 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19583 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19584 L4_MABX_B.SFunction1_o1_lk = ((real_T) CAN_Sgn.UnsignedSgn);
19585
19586 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
19587 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
19588 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19589 L4_MABX_B.SFunction1_o2_hv = ((real_T) CAN_Sgn.UnsignedSgn);
19590
19591 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
19592 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19593 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19594 L4_MABX_B.SFunction1_o3_d0 = ((real_T) CAN_Sgn.UnsignedSgn);
19595
19596 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
19597 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
19598 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19599 L4_MABX_B.SFunction1_o4_j2 = ((real_T) CAN_Sgn.UnsignedSgn);
19600
19601 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
19602 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19603 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19604 L4_MABX_B.SFunction1_o5_pv = ((real_T) CAN_Sgn.UnsignedSgn);
19605
19606 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
19607 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
19608 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19609 L4_MABX_B.SFunction1_o6_d3 = ((real_T) CAN_Sgn.UnsignedSgn);
19610
19611 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
19612 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19613 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19614 L4_MABX_B.SFunction1_o7_k = ((real_T) CAN_Sgn.UnsignedSgn);
19615
19616 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
19617 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
19618 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19619 L4_MABX_B.SFunction1_o8_pv = ((real_T) CAN_Sgn.UnsignedSgn);
19620 }
19621 }
19622 } else {
19623 /* set RX status to 0 because no new message has arrived */
19624 L4_MABX_B.SFunction1_o9_n2 = 0.0;
19625 }
19626 }
19627 }
19628
19629 /* End of Outputs for SubSystem: '<S568>/CAN_TYPE1_RX_M1_C1' */
19630
19631 /* RelationalOperator: '<S576>/Operator' incorporates:
19632 * Constant: '<S430>/Constant'
19633 * Constant: '<S571>/Constant1'
19634 */
19635 L4_MABX_B.Operator_e1 = (PROPB_REAX_CHANNEL_APV ==
19636 L4_MABX_P.Constant1_Value_bz);
19637
19638 /* Outputs for Enabled SubSystem: '<S569>/CAN_TYPE1_RX_M1_C2' incorporates:
19639 * EnablePort: '<S573>/Enable'
19640 */
19641 if (L4_MABX_B.Operator_e1) {
19642 /* S-Function (rti_commonblock): '<S573>/S-Function1' */
19643 /* This comment workarounds a code generation problem */
19644
19645 /* dSPACE RTICAN RX Message Block: "PropB_REAX_3_13" Id:419426579 */
19646 {
19647 UInt32 *CAN_Msg;
19648 static dsfloat time_old = 0.0;
19649
19650 /* Read status and timestamp info (previous message) */
19651 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].timestamp !=
19652 time_old) {
19653 /* ... save timestamp info for the calculation of the RX status
19654 during the consecutive sample hit*/
19655 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].
19656 timestamp;
19657
19658 /* ... set the processed flag to one */
19659 L4_MABX_B.SFunction1_o9_g = 1.0;
19660 L4_MABX_B.SFunction1_o10_i = (real_T)
19661 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].timestamp;
19662 L4_MABX_B.SFunction1_o11_l = (real_T)
19663 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].deltatime;
19664 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF113].data;
19665
19666 /* Decode CAN message */
19667 {
19668 {
19669 rtican_Signal_t CAN_Sgn;
19670
19671 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
19672 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19673 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19674 L4_MABX_B.SFunction1_o1_i4 = ((real_T) CAN_Sgn.UnsignedSgn);
19675
19676 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
19677 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
19678 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19679 L4_MABX_B.SFunction1_o2_by = ((real_T) CAN_Sgn.UnsignedSgn);
19680
19681 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
19682 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19683 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19684 L4_MABX_B.SFunction1_o3_be = ((real_T) CAN_Sgn.UnsignedSgn);
19685
19686 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
19687 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
19688 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19689 L4_MABX_B.SFunction1_o4_fnt = ((real_T) CAN_Sgn.UnsignedSgn);
19690
19691 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
19692 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19693 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19694 L4_MABX_B.SFunction1_o5_lm = ((real_T) CAN_Sgn.UnsignedSgn);
19695
19696 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
19697 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
19698 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19699 L4_MABX_B.SFunction1_o6_ol = ((real_T) CAN_Sgn.UnsignedSgn);
19700
19701 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
19702 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19703 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19704 L4_MABX_B.SFunction1_o7_go = ((real_T) CAN_Sgn.UnsignedSgn);
19705
19706 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
19707 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
19708 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19709 L4_MABX_B.SFunction1_o8_fm0 = ((real_T) CAN_Sgn.UnsignedSgn);
19710 }
19711 }
19712 } else {
19713 /* set RX status to 0 because no new message has arrived */
19714 L4_MABX_B.SFunction1_o9_g = 0.0;
19715 }
19716 }
19717 }
19718
19719 /* End of Outputs for SubSystem: '<S569>/CAN_TYPE1_RX_M1_C2' */
19720
19721 /* DataTypeConversion: '<S569>/Data Type Conversion' */
19722 PositionFinalLimited = L4_MABX_B.SFunction1_o1_i4;
19723 if (PositionFinalLimited < 256.0) {
19724 if (PositionFinalLimited >= 0.0) {
19725 starting_index = (uint8_T)PositionFinalLimited;
19726 } else {
19727 starting_index = 0U;
19728 }
19729 } else {
19730 starting_index = MAX_uint8_T;
19731 }
19732
19733 L4_MABX_B.DataTypeConversion_nr = starting_index;
19734
19735 /* End of DataTypeConversion: '<S569>/Data Type Conversion' */
19736
19737 /* DataTypeConversion: '<S569>/Data Type Conversion1' */
19738 PositionFinalLimited = L4_MABX_B.SFunction1_o2_by;
19739 if (PositionFinalLimited < 256.0) {
19740 if (PositionFinalLimited >= 0.0) {
19741 starting_index = (uint8_T)PositionFinalLimited;
19742 } else {
19743 starting_index = 0U;
19744 }
19745 } else {
19746 starting_index = MAX_uint8_T;
19747 }
19748
19749 L4_MABX_B.DataTypeConversion1_dhc = starting_index;
19750
19751 /* End of DataTypeConversion: '<S569>/Data Type Conversion1' */
19752
19753 /* DataTypeConversion: '<S569>/Data Type Conversion2' */
19754 PositionFinalLimited = L4_MABX_B.SFunction1_o3_be;
19755 if (PositionFinalLimited < 256.0) {
19756 if (PositionFinalLimited >= 0.0) {
19757 starting_index = (uint8_T)PositionFinalLimited;
19758 } else {
19759 starting_index = 0U;
19760 }
19761 } else {
19762 starting_index = MAX_uint8_T;
19763 }
19764
19765 L4_MABX_B.DataTypeConversion2_hr = starting_index;
19766
19767 /* End of DataTypeConversion: '<S569>/Data Type Conversion2' */
19768
19769 /* DataTypeConversion: '<S569>/Data Type Conversion3' */
19770 PositionFinalLimited = L4_MABX_B.SFunction1_o4_fnt;
19771 if (PositionFinalLimited < 256.0) {
19772 if (PositionFinalLimited >= 0.0) {
19773 starting_index = (uint8_T)PositionFinalLimited;
19774 } else {
19775 starting_index = 0U;
19776 }
19777 } else {
19778 starting_index = MAX_uint8_T;
19779 }
19780
19781 L4_MABX_B.DataTypeConversion3_ku = starting_index;
19782
19783 /* End of DataTypeConversion: '<S569>/Data Type Conversion3' */
19784
19785 /* DataTypeConversion: '<S569>/Data Type Conversion4' */
19786 PositionFinalLimited = L4_MABX_B.SFunction1_o5_lm;
19787 if (PositionFinalLimited < 256.0) {
19788 if (PositionFinalLimited >= 0.0) {
19789 starting_index = (uint8_T)PositionFinalLimited;
19790 } else {
19791 starting_index = 0U;
19792 }
19793 } else {
19794 starting_index = MAX_uint8_T;
19795 }
19796
19797 L4_MABX_B.DataTypeConversion4_d2 = starting_index;
19798
19799 /* End of DataTypeConversion: '<S569>/Data Type Conversion4' */
19800
19801 /* DataTypeConversion: '<S569>/Data Type Conversion5' */
19802 PositionFinalLimited = L4_MABX_B.SFunction1_o6_ol;
19803 if (PositionFinalLimited < 256.0) {
19804 if (PositionFinalLimited >= 0.0) {
19805 starting_index = (uint8_T)PositionFinalLimited;
19806 } else {
19807 starting_index = 0U;
19808 }
19809 } else {
19810 starting_index = MAX_uint8_T;
19811 }
19812
19813 L4_MABX_B.DataTypeConversion5_pa = starting_index;
19814
19815 /* End of DataTypeConversion: '<S569>/Data Type Conversion5' */
19816
19817 /* DataTypeConversion: '<S569>/Data Type Conversion6' */
19818 PositionFinalLimited = L4_MABX_B.SFunction1_o7_go;
19819 if (PositionFinalLimited < 256.0) {
19820 if (PositionFinalLimited >= 0.0) {
19821 starting_index = (uint8_T)PositionFinalLimited;
19822 } else {
19823 starting_index = 0U;
19824 }
19825 } else {
19826 starting_index = MAX_uint8_T;
19827 }
19828
19829 L4_MABX_B.DataTypeConversion6_gr = starting_index;
19830
19831 /* End of DataTypeConversion: '<S569>/Data Type Conversion6' */
19832
19833 /* DataTypeConversion: '<S569>/Data Type Conversion7' */
19834 PositionFinalLimited = L4_MABX_B.SFunction1_o8_fm0;
19835 if (PositionFinalLimited < 256.0) {
19836 if (PositionFinalLimited >= 0.0) {
19837 starting_index = (uint8_T)PositionFinalLimited;
19838 } else {
19839 starting_index = 0U;
19840 }
19841 } else {
19842 starting_index = MAX_uint8_T;
19843 }
19844
19845 L4_MABX_B.DataTypeConversion7_gp = starting_index;
19846
19847 /* End of DataTypeConversion: '<S569>/Data Type Conversion7' */
19848
19849 /* RelationalOperator: '<S580>/Operator' incorporates:
19850 * Constant: '<S430>/Constant'
19851 * Constant: '<S571>/Constant5'
19852 */
19853 L4_MABX_B.Operator_h4 = (PROPB_REAX_CHANNEL_APV ==
19854 L4_MABX_P.Constant5_Value_ay);
19855
19856 /* Outputs for Enabled SubSystem: '<S570>/CAN_TYPE1_RX_M3_C2' incorporates:
19857 * EnablePort: '<S574>/Enable'
19858 */
19859 if (L4_MABX_B.Operator_h4) {
19860 /* S-Function (rti_commonblock): '<S574>/S-Function1' */
19861 /* This comment workarounds a code generation problem */
19862
19863 /* dSPACE RTICAN RX Message Block: "PropB_REAX_3_13" Id:419426579 */
19864 {
19865 UInt32 *CAN_Msg;
19866 static dsfloat time_old = 0.0;
19867
19868 /* Read status and timestamp info (previous message) */
19869 if (can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF113].timestamp !=
19870 time_old) {
19871 /* ... save timestamp info for the calculation of the RX status
19872 during the consecutive sample hit*/
19873 time_old = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF113].
19874 timestamp;
19875
19876 /* ... set the processed flag to one */
19877 L4_MABX_B.SFunction1_o9_op = 1.0;
19878 L4_MABX_B.SFunction1_o10_k = (real_T)
19879 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF113].timestamp;
19880 L4_MABX_B.SFunction1_o11_aw = (real_T)
19881 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF113].deltatime;
19882 CAN_Msg = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF113].data;
19883
19884 /* Decode CAN message */
19885 {
19886 {
19887 rtican_Signal_t CAN_Sgn;
19888
19889 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
19890 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
19891 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19892 L4_MABX_B.SFunction1_o1_hs = ((real_T) CAN_Sgn.UnsignedSgn);
19893
19894 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
19895 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
19896 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19897 L4_MABX_B.SFunction1_o2_oh = ((real_T) CAN_Sgn.UnsignedSgn);
19898
19899 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
19900 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
19901 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19902 L4_MABX_B.SFunction1_o3_f = ((real_T) CAN_Sgn.UnsignedSgn);
19903
19904 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
19905 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
19906 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19907 L4_MABX_B.SFunction1_o4_gs2 = ((real_T) CAN_Sgn.UnsignedSgn);
19908
19909 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
19910 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
19911 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19912 L4_MABX_B.SFunction1_o5_cw = ((real_T) CAN_Sgn.UnsignedSgn);
19913
19914 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
19915 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
19916 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19917 L4_MABX_B.SFunction1_o6_es = ((real_T) CAN_Sgn.UnsignedSgn);
19918
19919 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
19920 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
19921 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19922 L4_MABX_B.SFunction1_o7_dz = ((real_T) CAN_Sgn.UnsignedSgn);
19923
19924 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
19925 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
19926 CAN_Sgn.UnsignedSgn &= 0x000000FF;
19927 L4_MABX_B.SFunction1_o8_fm = ((real_T) CAN_Sgn.UnsignedSgn);
19928 }
19929 }
19930 } else {
19931 /* set RX status to 0 because no new message has arrived */
19932 L4_MABX_B.SFunction1_o9_op = 0.0;
19933 }
19934 }
19935 }
19936
19937 /* End of Outputs for SubSystem: '<S570>/CAN_TYPE1_RX_M3_C2' */
19938
19939 /* DataTypeConversion: '<S570>/Data Type Conversion' */
19940 PositionFinalLimited = L4_MABX_B.SFunction1_o1_hs;
19941 if (PositionFinalLimited < 256.0) {
19942 if (PositionFinalLimited >= 0.0) {
19943 starting_index = (uint8_T)PositionFinalLimited;
19944 } else {
19945 starting_index = 0U;
19946 }
19947 } else {
19948 starting_index = MAX_uint8_T;
19949 }
19950
19951 L4_MABX_B.DataTypeConversion_jr = starting_index;
19952
19953 /* End of DataTypeConversion: '<S570>/Data Type Conversion' */
19954
19955 /* DataTypeConversion: '<S570>/Data Type Conversion1' */
19956 PositionFinalLimited = L4_MABX_B.SFunction1_o2_oh;
19957 if (PositionFinalLimited < 256.0) {
19958 if (PositionFinalLimited >= 0.0) {
19959 starting_index = (uint8_T)PositionFinalLimited;
19960 } else {
19961 starting_index = 0U;
19962 }
19963 } else {
19964 starting_index = MAX_uint8_T;
19965 }
19966
19967 L4_MABX_B.DataTypeConversion1_j = starting_index;
19968
19969 /* End of DataTypeConversion: '<S570>/Data Type Conversion1' */
19970
19971 /* DataTypeConversion: '<S570>/Data Type Conversion2' */
19972 PositionFinalLimited = L4_MABX_B.SFunction1_o3_f;
19973 if (PositionFinalLimited < 256.0) {
19974 if (PositionFinalLimited >= 0.0) {
19975 starting_index = (uint8_T)PositionFinalLimited;
19976 } else {
19977 starting_index = 0U;
19978 }
19979 } else {
19980 starting_index = MAX_uint8_T;
19981 }
19982
19983 L4_MABX_B.DataTypeConversion2_ol = starting_index;
19984
19985 /* End of DataTypeConversion: '<S570>/Data Type Conversion2' */
19986
19987 /* DataTypeConversion: '<S570>/Data Type Conversion3' */
19988 PositionFinalLimited = L4_MABX_B.SFunction1_o4_gs2;
19989 if (PositionFinalLimited < 256.0) {
19990 if (PositionFinalLimited >= 0.0) {
19991 starting_index = (uint8_T)PositionFinalLimited;
19992 } else {
19993 starting_index = 0U;
19994 }
19995 } else {
19996 starting_index = MAX_uint8_T;
19997 }
19998
19999 L4_MABX_B.DataTypeConversion3_gb = starting_index;
20000
20001 /* End of DataTypeConversion: '<S570>/Data Type Conversion3' */
20002
20003 /* DataTypeConversion: '<S570>/Data Type Conversion4' */
20004 PositionFinalLimited = L4_MABX_B.SFunction1_o5_cw;
20005 if (PositionFinalLimited < 256.0) {
20006 if (PositionFinalLimited >= 0.0) {
20007 starting_index = (uint8_T)PositionFinalLimited;
20008 } else {
20009 starting_index = 0U;
20010 }
20011 } else {
20012 starting_index = MAX_uint8_T;
20013 }
20014
20015 L4_MABX_B.DataTypeConversion4_g = starting_index;
20016
20017 /* End of DataTypeConversion: '<S570>/Data Type Conversion4' */
20018
20019 /* DataTypeConversion: '<S570>/Data Type Conversion5' */
20020 PositionFinalLimited = L4_MABX_B.SFunction1_o6_es;
20021 if (PositionFinalLimited < 256.0) {
20022 if (PositionFinalLimited >= 0.0) {
20023 starting_index = (uint8_T)PositionFinalLimited;
20024 } else {
20025 starting_index = 0U;
20026 }
20027 } else {
20028 starting_index = MAX_uint8_T;
20029 }
20030
20031 L4_MABX_B.DataTypeConversion5_e = starting_index;
20032
20033 /* End of DataTypeConversion: '<S570>/Data Type Conversion5' */
20034
20035 /* DataTypeConversion: '<S570>/Data Type Conversion6' */
20036 PositionFinalLimited = L4_MABX_B.SFunction1_o7_dz;
20037 if (PositionFinalLimited < 256.0) {
20038 if (PositionFinalLimited >= 0.0) {
20039 starting_index = (uint8_T)PositionFinalLimited;
20040 } else {
20041 starting_index = 0U;
20042 }
20043 } else {
20044 starting_index = MAX_uint8_T;
20045 }
20046
20047 L4_MABX_B.DataTypeConversion6_mb = starting_index;
20048
20049 /* End of DataTypeConversion: '<S570>/Data Type Conversion6' */
20050
20051 /* DataTypeConversion: '<S570>/Data Type Conversion7' */
20052 PositionFinalLimited = L4_MABX_B.SFunction1_o8_fm;
20053 if (PositionFinalLimited < 256.0) {
20054 if (PositionFinalLimited >= 0.0) {
20055 starting_index = (uint8_T)PositionFinalLimited;
20056 } else {
20057 starting_index = 0U;
20058 }
20059 } else {
20060 starting_index = MAX_uint8_T;
20061 }
20062
20063 L4_MABX_B.DataTypeConversion7_da = starting_index;
20064
20065 /* End of DataTypeConversion: '<S570>/Data Type Conversion7' */
20066
20067 /* MultiPortSwitch: '<S430>/Multiport_Switch' incorporates:
20068 * Constant: '<S430>/Constant'
20069 */
20070 switch (PROPB_REAX_CHANNEL_APV) {
20071 case ENUM_CAN_RX_T_RX_CAN_1:
20072 /* DataTypeConversion: '<S568>/Data Type Conversion' */
20073 PositionFinalLimited = L4_MABX_B.SFunction1_o1_lk;
20074 if (PositionFinalLimited < 256.0) {
20075 if (PositionFinalLimited >= 0.0) {
20076 starting_index = (uint8_T)PositionFinalLimited;
20077 } else {
20078 starting_index = 0U;
20079 }
20080 } else {
20081 starting_index = MAX_uint8_T;
20082 }
20083
20084 L4_MABX_B.DataTypeConversion_ef = starting_index;
20085
20086 /* End of DataTypeConversion: '<S568>/Data Type Conversion' */
20087
20088 /* DataTypeConversion: '<S568>/Data Type Conversion1' */
20089 PositionFinalLimited = L4_MABX_B.SFunction1_o2_hv;
20090 if (PositionFinalLimited < 256.0) {
20091 if (PositionFinalLimited >= 0.0) {
20092 starting_index = (uint8_T)PositionFinalLimited;
20093 } else {
20094 starting_index = 0U;
20095 }
20096 } else {
20097 starting_index = MAX_uint8_T;
20098 }
20099
20100 L4_MABX_B.DataTypeConversion1_lb = starting_index;
20101
20102 /* End of DataTypeConversion: '<S568>/Data Type Conversion1' */
20103
20104 /* DataTypeConversion: '<S568>/Data Type Conversion2' */
20105 PositionFinalLimited = L4_MABX_B.SFunction1_o3_d0;
20106 if (PositionFinalLimited < 256.0) {
20107 if (PositionFinalLimited >= 0.0) {
20108 starting_index = (uint8_T)PositionFinalLimited;
20109 } else {
20110 starting_index = 0U;
20111 }
20112 } else {
20113 starting_index = MAX_uint8_T;
20114 }
20115
20116 L4_MABX_B.DataTypeConversion2_jg = starting_index;
20117
20118 /* End of DataTypeConversion: '<S568>/Data Type Conversion2' */
20119
20120 /* DataTypeConversion: '<S568>/Data Type Conversion3' */
20121 PositionFinalLimited = L4_MABX_B.SFunction1_o4_j2;
20122 if (PositionFinalLimited < 256.0) {
20123 if (PositionFinalLimited >= 0.0) {
20124 starting_index = (uint8_T)PositionFinalLimited;
20125 } else {
20126 starting_index = 0U;
20127 }
20128 } else {
20129 starting_index = MAX_uint8_T;
20130 }
20131
20132 L4_MABX_B.DataTypeConversion3_p02 = starting_index;
20133
20134 /* End of DataTypeConversion: '<S568>/Data Type Conversion3' */
20135
20136 /* DataTypeConversion: '<S568>/Data Type Conversion4' */
20137 PositionFinalLimited = L4_MABX_B.SFunction1_o5_pv;
20138 if (PositionFinalLimited < 256.0) {
20139 if (PositionFinalLimited >= 0.0) {
20140 starting_index = (uint8_T)PositionFinalLimited;
20141 } else {
20142 starting_index = 0U;
20143 }
20144 } else {
20145 starting_index = MAX_uint8_T;
20146 }
20147
20148 L4_MABX_B.DataTypeConversion4_h3u = starting_index;
20149
20150 /* End of DataTypeConversion: '<S568>/Data Type Conversion4' */
20151
20152 /* DataTypeConversion: '<S568>/Data Type Conversion5' */
20153 PositionFinalLimited = L4_MABX_B.SFunction1_o6_d3;
20154 if (PositionFinalLimited < 256.0) {
20155 if (PositionFinalLimited >= 0.0) {
20156 starting_index = (uint8_T)PositionFinalLimited;
20157 } else {
20158 starting_index = 0U;
20159 }
20160 } else {
20161 starting_index = MAX_uint8_T;
20162 }
20163
20164 L4_MABX_B.DataTypeConversion5_nx = starting_index;
20165
20166 /* End of DataTypeConversion: '<S568>/Data Type Conversion5' */
20167
20168 /* DataTypeConversion: '<S568>/Data Type Conversion6' */
20169 PositionFinalLimited = L4_MABX_B.SFunction1_o7_k;
20170 if (PositionFinalLimited < 256.0) {
20171 if (PositionFinalLimited >= 0.0) {
20172 starting_index = (uint8_T)PositionFinalLimited;
20173 } else {
20174 starting_index = 0U;
20175 }
20176 } else {
20177 starting_index = MAX_uint8_T;
20178 }
20179
20180 L4_MABX_B.DataTypeConversion6_d = starting_index;
20181
20182 /* End of DataTypeConversion: '<S568>/Data Type Conversion6' */
20183
20184 /* DataTypeConversion: '<S568>/Data Type Conversion7' */
20185 PositionFinalLimited = L4_MABX_B.SFunction1_o8_pv;
20186 if (PositionFinalLimited < 256.0) {
20187 if (PositionFinalLimited >= 0.0) {
20188 starting_index = (uint8_T)PositionFinalLimited;
20189 } else {
20190 starting_index = 0U;
20191 }
20192 } else {
20193 starting_index = MAX_uint8_T;
20194 }
20195
20196 L4_MABX_B.DataTypeConversion7_c = starting_index;
20197
20198 /* End of DataTypeConversion: '<S568>/Data Type Conversion7' */
20199 L4_MABX_B.RawData_i[0] = L4_MABX_B.DataTypeConversion_ef;
20200 L4_MABX_B.RawData_i[1] = L4_MABX_B.DataTypeConversion1_lb;
20201 L4_MABX_B.RawData_i[2] = L4_MABX_B.DataTypeConversion2_jg;
20202 L4_MABX_B.RawData_i[3] = L4_MABX_B.DataTypeConversion3_p02;
20203 L4_MABX_B.RawData_i[4] = L4_MABX_B.DataTypeConversion4_h3u;
20204 L4_MABX_B.RawData_i[5] = L4_MABX_B.DataTypeConversion5_nx;
20205 L4_MABX_B.RawData_i[6] = L4_MABX_B.DataTypeConversion6_d;
20206 L4_MABX_B.RawData_i[7] = L4_MABX_B.DataTypeConversion7_c;
20207 break;
20208
20209 case ENUM_CAN_RX_T_RX_CAN_2:
20210 L4_MABX_B.RawData_i[0] = L4_MABX_B.DataTypeConversion_nr;
20211 L4_MABX_B.RawData_i[1] = L4_MABX_B.DataTypeConversion1_dhc;
20212 L4_MABX_B.RawData_i[2] = L4_MABX_B.DataTypeConversion2_hr;
20213 L4_MABX_B.RawData_i[3] = L4_MABX_B.DataTypeConversion3_ku;
20214 L4_MABX_B.RawData_i[4] = L4_MABX_B.DataTypeConversion4_d2;
20215 L4_MABX_B.RawData_i[5] = L4_MABX_B.DataTypeConversion5_pa;
20216 L4_MABX_B.RawData_i[6] = L4_MABX_B.DataTypeConversion6_gr;
20217 L4_MABX_B.RawData_i[7] = L4_MABX_B.DataTypeConversion7_gp;
20218 break;
20219
20220 case ENUM_CAN_RX_T_RX_CAN_3:
20221 L4_MABX_B.RawData_i[0] = L4_MABX_B.DataTypeConversion_nr;
20222 L4_MABX_B.RawData_i[1] = L4_MABX_B.DataTypeConversion1_dhc;
20223 L4_MABX_B.RawData_i[2] = L4_MABX_B.DataTypeConversion2_hr;
20224 L4_MABX_B.RawData_i[3] = L4_MABX_B.DataTypeConversion3_ku;
20225 L4_MABX_B.RawData_i[4] = L4_MABX_B.DataTypeConversion4_d2;
20226 L4_MABX_B.RawData_i[5] = L4_MABX_B.DataTypeConversion5_pa;
20227 L4_MABX_B.RawData_i[6] = L4_MABX_B.DataTypeConversion6_gr;
20228 L4_MABX_B.RawData_i[7] = L4_MABX_B.DataTypeConversion7_gp;
20229 break;
20230
20231 case ENUM_CAN_RX_T_RX_CAN_4:
20232 L4_MABX_B.RawData_i[0] = L4_MABX_B.DataTypeConversion_nr;
20233 L4_MABX_B.RawData_i[1] = L4_MABX_B.DataTypeConversion1_dhc;
20234 L4_MABX_B.RawData_i[2] = L4_MABX_B.DataTypeConversion2_hr;
20235 L4_MABX_B.RawData_i[3] = L4_MABX_B.DataTypeConversion3_ku;
20236 L4_MABX_B.RawData_i[4] = L4_MABX_B.DataTypeConversion4_d2;
20237 L4_MABX_B.RawData_i[5] = L4_MABX_B.DataTypeConversion5_pa;
20238 L4_MABX_B.RawData_i[6] = L4_MABX_B.DataTypeConversion6_gr;
20239 L4_MABX_B.RawData_i[7] = L4_MABX_B.DataTypeConversion7_gp;
20240 break;
20241
20242 case ENUM_CAN_RX_T_RX_CAN_5:
20243 L4_MABX_B.RawData_i[0] = L4_MABX_B.DataTypeConversion_nr;
20244 L4_MABX_B.RawData_i[1] = L4_MABX_B.DataTypeConversion1_dhc;
20245 L4_MABX_B.RawData_i[2] = L4_MABX_B.DataTypeConversion2_hr;
20246 L4_MABX_B.RawData_i[3] = L4_MABX_B.DataTypeConversion3_ku;
20247 L4_MABX_B.RawData_i[4] = L4_MABX_B.DataTypeConversion4_d2;
20248 L4_MABX_B.RawData_i[5] = L4_MABX_B.DataTypeConversion5_pa;
20249 L4_MABX_B.RawData_i[6] = L4_MABX_B.DataTypeConversion6_gr;
20250 L4_MABX_B.RawData_i[7] = L4_MABX_B.DataTypeConversion7_gp;
20251 break;
20252
20253 case ENUM_CAN_RX_T_RX_CAN_6:
20254 L4_MABX_B.RawData_i[0] = L4_MABX_B.DataTypeConversion_jr;
20255 L4_MABX_B.RawData_i[1] = L4_MABX_B.DataTypeConversion1_j;
20256 L4_MABX_B.RawData_i[2] = L4_MABX_B.DataTypeConversion2_ol;
20257 L4_MABX_B.RawData_i[3] = L4_MABX_B.DataTypeConversion3_gb;
20258 L4_MABX_B.RawData_i[4] = L4_MABX_B.DataTypeConversion4_g;
20259 L4_MABX_B.RawData_i[5] = L4_MABX_B.DataTypeConversion5_e;
20260 L4_MABX_B.RawData_i[6] = L4_MABX_B.DataTypeConversion6_mb;
20261 L4_MABX_B.RawData_i[7] = L4_MABX_B.DataTypeConversion7_da;
20262 break;
20263
20264 default:
20265 L4_MABX_B.RawData_i[0] = L4_MABX_B.DataTypeConversion_jr;
20266 L4_MABX_B.RawData_i[1] = L4_MABX_B.DataTypeConversion1_j;
20267 L4_MABX_B.RawData_i[2] = L4_MABX_B.DataTypeConversion2_ol;
20268 L4_MABX_B.RawData_i[3] = L4_MABX_B.DataTypeConversion3_gb;
20269 L4_MABX_B.RawData_i[4] = L4_MABX_B.DataTypeConversion4_g;
20270 L4_MABX_B.RawData_i[5] = L4_MABX_B.DataTypeConversion5_e;
20271 L4_MABX_B.RawData_i[6] = L4_MABX_B.DataTypeConversion6_mb;
20272 L4_MABX_B.RawData_i[7] = L4_MABX_B.DataTypeConversion7_da;
20273 break;
20274 }
20275
20276 /* S-Function (sfix_bitop): '<S658>/Operator' */
20277 L4_MABX_B.Operator_ei = (uint8_T)(L4_MABX_B.RawData_i[0] &
20278 L4_MABX_P.Operator_BitMask_m2);
20279
20280 /* DataTypeConversion: '<S658>/DataType' */
20281 L4_MABX_B.DataType_gr = L4_MABX_B.Operator_ei;
20282
20283 /* DataTypeConversion: '<S405>/Data Type Conversion' */
20284 REAX_Current_Mode = L4_MABX_B.DataType_gr;
20285
20286 /* S-Function (sfix_bitop): '<S657>/Operator' */
20287 L4_MABX_B.Operator_a = (uint8_T)(L4_MABX_B.RawData_i[0] &
20288 L4_MABX_P.Operator_BitMask_do);
20289
20290 /* DataTypeConversion: '<S657>/DataType' */
20291 L4_MABX_B.DataType_m2 = L4_MABX_B.Operator_a;
20292
20293 /* ArithShift: '<S652>/Shift_Arithmetic ' */
20294 L4_MABX_B.PropB_REAX_3_ReqOperatingMode = (uint8_T)((uint32_T)
20295 L4_MABX_B.DataType_m2 >> 4);
20296
20297 /* DataTypeConversion: '<S405>/Data Type Conversion1' */
20298 REAX_Req_Mode = L4_MABX_B.PropB_REAX_3_ReqOperatingMode;
20299
20300 /* DataTypeConversion: '<S405>/Data Type Conversion2' */
20301 REAX_Status = L4_MABX_B.RawData_i[1];
20302
20303 /* DataTypeConversion: '<S654>/Data Type Conversion1' */
20304 L4_MABX_B.DataTypeConversion1_ky = L4_MABX_B.RawData_i[2];
20305
20306 /* DataTypeConversion: '<S654>/Data Type Conversion2' */
20307 L4_MABX_B.DataTypeConversion2_e = L4_MABX_B.RawData_i[3];
20308
20309 /* ArithShift: '<S654>/Shift_Arithmetic 1' */
20310 L4_MABX_B.Shift_Arithmetic1_b = (uint16_T)(L4_MABX_B.DataTypeConversion2_e <<
20311 8);
20312
20313 /* S-Function (sfix_bitop): '<S659>/Operator' */
20314 L4_MABX_B.Operator_bw = (uint16_T)(L4_MABX_B.DataTypeConversion1_ky |
20315 L4_MABX_B.Shift_Arithmetic1_b);
20316
20317 /* DataTypeConversion: '<S659>/DataType' */
20318 L4_MABX_B.DataType_o0 = L4_MABX_B.Operator_bw;
20319
20320 /* DataTypeConversion: '<S654>/Data Type Conversion3' */
20321 L4_MABX_B.DataTypeConversion3_jn = (int16_T)L4_MABX_B.DataType_o0;
20322
20323 /* DataTypeConversion: '<S654>/Data Type Conversion4' */
20324 L4_MABX_B.DataTypeConversion4_e = L4_MABX_B.DataTypeConversion3_jn;
20325
20326 /* Product: '<S654>/Product' incorporates:
20327 * Constant: '<S654>/Constant'
20328 */
20329 L4_MABX_B.PropB_REAX_3_HandwheelTorque = (real32_T)
20330 (L4_MABX_B.DataTypeConversion4_e * L4_MABX_P.Constant_Value_jb);
20331
20332 /* DataTypeConversion: '<S405>/Data Type Conversion3' */
20333 REAX_Handwheel_Torque = L4_MABX_B.PropB_REAX_3_HandwheelTorque;
20334
20335 /* DataTypeConversion: '<S655>/Data Type Conversion4' */
20336 L4_MABX_B.DataTypeConversion4_l = L4_MABX_B.RawData_i[4];
20337
20338 /* DataTypeConversion: '<S655>/Data Type Conversion5' */
20339 L4_MABX_B.DataTypeConversion5_as = L4_MABX_B.RawData_i[5];
20340
20341 /* ArithShift: '<S655>/Shift_Arithmetic 2' */
20342 L4_MABX_B.Shift_Arithmetic2_m = (uint16_T)(L4_MABX_B.DataTypeConversion5_as <<
20343 8);
20344
20345 /* S-Function (sfix_bitop): '<S660>/Operator' */
20346 L4_MABX_B.Operator_kt = (uint16_T)(L4_MABX_B.DataTypeConversion4_l |
20347 L4_MABX_B.Shift_Arithmetic2_m);
20348
20349 /* DataTypeConversion: '<S660>/DataType' */
20350 L4_MABX_B.DataType_j5 = L4_MABX_B.Operator_kt;
20351
20352 /* DataTypeConversion: '<S655>/Data Type Conversion6' */
20353 L4_MABX_B.DataTypeConversion6_m = (int16_T)L4_MABX_B.DataType_j5;
20354
20355 /* DataTypeConversion: '<S655>/Data Type Conversion1' */
20356 L4_MABX_B.DataTypeConversion1_f = L4_MABX_B.DataTypeConversion6_m;
20357
20358 /* Product: '<S655>/Product1' incorporates:
20359 * Constant: '<S655>/Constant1'
20360 */
20361 L4_MABX_B.PropB_REAX_3_HandwheelVelocity = (real32_T)
20362 (L4_MABX_B.DataTypeConversion1_f * L4_MABX_P.Constant1_Value_pl0);
20363
20364 /* DataTypeConversion: '<S405>/Data Type Conversion4' */
20365 REAX_Handwheel_Velocity = L4_MABX_B.PropB_REAX_3_HandwheelVelocity;
20366
20367 /* DataTypeConversion: '<S656>/Data Type Conversion7' */
20368 L4_MABX_B.DataTypeConversion7_gs = L4_MABX_B.RawData_i[6];
20369
20370 /* DataTypeConversion: '<S656>/Data Type Conversion8' */
20371 L4_MABX_B.DataTypeConversion8_j = L4_MABX_B.RawData_i[7];
20372
20373 /* ArithShift: '<S656>/Shift_Arithmetic 3' */
20374 L4_MABX_B.Shift_Arithmetic3_j = (uint16_T)(L4_MABX_B.DataTypeConversion8_j <<
20375 8);
20376
20377 /* S-Function (sfix_bitop): '<S661>/Operator' */
20378 L4_MABX_B.Operator_o = (uint16_T)(L4_MABX_B.DataTypeConversion7_gs |
20379 L4_MABX_B.Shift_Arithmetic3_j);
20380
20381 /* DataTypeConversion: '<S661>/DataType' */
20382 L4_MABX_B.DataType_hi = L4_MABX_B.Operator_o;
20383
20384 /* DataTypeConversion: '<S656>/Data Type Conversion9' */
20385 L4_MABX_B.DataTypeConversion9_g = (int16_T)L4_MABX_B.DataType_hi;
20386
20387 /* DataTypeConversion: '<S656>/Data Type Conversion1' */
20388 L4_MABX_B.DataTypeConversion1_g = L4_MABX_B.DataTypeConversion9_g;
20389
20390 /* Product: '<S656>/Product2' incorporates:
20391 * Constant: '<S656>/Constant2'
20392 */
20393 L4_MABX_B.PropB_REAX_3_PullCompensation = (real32_T)
20394 (L4_MABX_B.DataTypeConversion1_g * L4_MABX_P.Constant2_Value_o);
20395
20396 /* DataTypeConversion: '<S405>/Data Type Conversion5' */
20397 REAX_Pull_Compensation = L4_MABX_B.PropB_REAX_3_PullCompensation;
20398
20399 /* DataTypeConversion: '<S569>/Data Type Conversion8' */
20400 L4_MABX_B.RX_status_ok = (L4_MABX_B.SFunction1_o9_g != 0.0);
20401
20402 /* DataTypeConversion: '<S570>/Data Type Conversion8' */
20403 L4_MABX_B.RX_status_nl = (L4_MABX_B.SFunction1_o9_op != 0.0);
20404
20405 /* MultiPortSwitch: '<S430>/Multiport_Switch' incorporates:
20406 * Constant: '<S430>/Constant'
20407 */
20408 switch (PROPB_REAX_CHANNEL_APV) {
20409 case ENUM_CAN_RX_T_RX_CAN_1:
20410 /* DataTypeConversion: '<S568>/Data Type Conversion8' */
20411 L4_MABX_B.RX_status_fe = (L4_MABX_B.SFunction1_o9_n2 != 0.0);
20412 L4_MABX_B.RX_status_gd = L4_MABX_B.RX_status_fe;
20413 break;
20414
20415 case ENUM_CAN_RX_T_RX_CAN_2:
20416 L4_MABX_B.RX_status_gd = L4_MABX_B.RX_status_ok;
20417 break;
20418
20419 case ENUM_CAN_RX_T_RX_CAN_3:
20420 L4_MABX_B.RX_status_gd = L4_MABX_B.RX_status_ok;
20421 break;
20422
20423 case ENUM_CAN_RX_T_RX_CAN_4:
20424 L4_MABX_B.RX_status_gd = L4_MABX_B.RX_status_ok;
20425 break;
20426
20427 case ENUM_CAN_RX_T_RX_CAN_5:
20428 L4_MABX_B.RX_status_gd = L4_MABX_B.RX_status_ok;
20429 break;
20430
20431 case ENUM_CAN_RX_T_RX_CAN_6:
20432 L4_MABX_B.RX_status_gd = L4_MABX_B.RX_status_nl;
20433 break;
20434
20435 default:
20436 L4_MABX_B.RX_status_gd = L4_MABX_B.RX_status_nl;
20437 break;
20438 }
20439
20440 /* DataTypeConversion: '<S569>/Data Type Conversion9' */
20441 L4_MABX_B.RX_time_ny = L4_MABX_B.SFunction1_o10_i;
20442
20443 /* DataTypeConversion: '<S570>/Data Type Conversion9' */
20444 L4_MABX_B.RX_time_ne = L4_MABX_B.SFunction1_o10_k;
20445
20446 /* MultiPortSwitch: '<S430>/Multiport_Switch' incorporates:
20447 * Constant: '<S430>/Constant'
20448 */
20449 switch (PROPB_REAX_CHANNEL_APV) {
20450 case ENUM_CAN_RX_T_RX_CAN_1:
20451 /* DataTypeConversion: '<S568>/Data Type Conversion9' */
20452 L4_MABX_B.RX_time_ln = L4_MABX_B.SFunction1_o10_ag;
20453 L4_MABX_B.RX_time_dj = L4_MABX_B.RX_time_ln;
20454 break;
20455
20456 case ENUM_CAN_RX_T_RX_CAN_2:
20457 L4_MABX_B.RX_time_dj = L4_MABX_B.RX_time_ny;
20458 break;
20459
20460 case ENUM_CAN_RX_T_RX_CAN_3:
20461 L4_MABX_B.RX_time_dj = L4_MABX_B.RX_time_ny;
20462 break;
20463
20464 case ENUM_CAN_RX_T_RX_CAN_4:
20465 L4_MABX_B.RX_time_dj = L4_MABX_B.RX_time_ny;
20466 break;
20467
20468 case ENUM_CAN_RX_T_RX_CAN_5:
20469 L4_MABX_B.RX_time_dj = L4_MABX_B.RX_time_ny;
20470 break;
20471
20472 case ENUM_CAN_RX_T_RX_CAN_6:
20473 L4_MABX_B.RX_time_dj = L4_MABX_B.RX_time_ne;
20474 break;
20475
20476 default:
20477 L4_MABX_B.RX_time_dj = L4_MABX_B.RX_time_ne;
20478 break;
20479 }
20480
20481 /* DataTypeConversion: '<S569>/Data Type Conversion10' */
20482 L4_MABX_B.RX_delta_time_o = L4_MABX_B.SFunction1_o11_l;
20483
20484 /* DataTypeConversion: '<S570>/Data Type Conversion10' */
20485 L4_MABX_B.RX_delta_time_mr = L4_MABX_B.SFunction1_o11_aw;
20486
20487 /* MultiPortSwitch: '<S430>/Multiport_Switch' incorporates:
20488 * Constant: '<S430>/Constant'
20489 */
20490 switch (PROPB_REAX_CHANNEL_APV) {
20491 case ENUM_CAN_RX_T_RX_CAN_1:
20492 /* DataTypeConversion: '<S568>/Data Type Conversion10' */
20493 L4_MABX_B.RX_delta_time_ei = L4_MABX_B.SFunction1_o11_nf;
20494 L4_MABX_B.RX_delta_time_mp = L4_MABX_B.RX_delta_time_ei;
20495 break;
20496
20497 case ENUM_CAN_RX_T_RX_CAN_2:
20498 L4_MABX_B.RX_delta_time_mp = L4_MABX_B.RX_delta_time_o;
20499 break;
20500
20501 case ENUM_CAN_RX_T_RX_CAN_3:
20502 L4_MABX_B.RX_delta_time_mp = L4_MABX_B.RX_delta_time_o;
20503 break;
20504
20505 case ENUM_CAN_RX_T_RX_CAN_4:
20506 L4_MABX_B.RX_delta_time_mp = L4_MABX_B.RX_delta_time_o;
20507 break;
20508
20509 case ENUM_CAN_RX_T_RX_CAN_5:
20510 L4_MABX_B.RX_delta_time_mp = L4_MABX_B.RX_delta_time_o;
20511 break;
20512
20513 case ENUM_CAN_RX_T_RX_CAN_6:
20514 L4_MABX_B.RX_delta_time_mp = L4_MABX_B.RX_delta_time_mr;
20515 break;
20516
20517 default:
20518 L4_MABX_B.RX_delta_time_mp = L4_MABX_B.RX_delta_time_mr;
20519 break;
20520 }
20521
20522 /* RelationalOperator: '<S577>/Operator' incorporates:
20523 * Constant: '<S430>/Constant'
20524 * Constant: '<S571>/Constant2'
20525 */
20526 L4_MABX_B.Operator_bx = (PROPB_REAX_CHANNEL_APV ==
20527 L4_MABX_P.Constant2_Value_n4);
20528
20529 /* RelationalOperator: '<S578>/Operator' incorporates:
20530 * Constant: '<S430>/Constant'
20531 * Constant: '<S571>/Constant3'
20532 */
20533 L4_MABX_B.Operator_oi = (PROPB_REAX_CHANNEL_APV == L4_MABX_P.Constant3_Value_a);
20534
20535 /* RelationalOperator: '<S579>/Operator' incorporates:
20536 * Constant: '<S430>/Constant'
20537 * Constant: '<S571>/Constant4'
20538 */
20539 L4_MABX_B.Operator_ll = (PROPB_REAX_CHANNEL_APV ==
20540 L4_MABX_P.Constant4_Value_nx);
20541
20542 /* RelationalOperator: '<S588>/Operator' incorporates:
20543 * Constant: '<S431>/Constant'
20544 * Constant: '<S584>/Constant'
20545 */
20546 L4_MABX_B.Operator_ibq = (PROPB_REAX_CHANNEL_APV ==
20547 L4_MABX_P.Constant_Value_my);
20548
20549 /* Outputs for Enabled SubSystem: '<S581>/CAN_TYPE1_RX_M1_C1' incorporates:
20550 * EnablePort: '<S585>/Enable'
20551 */
20552 if (L4_MABX_B.Operator_ibq) {
20553 /* S-Function (rti_commonblock): '<S585>/S-Function1' */
20554 /* This comment workarounds a code generation problem */
20555
20556 /* dSPACE RTICAN RX Message Block: "PropB_REAX_4_13" Id:419428115 */
20557 {
20558 UInt32 *CAN_Msg;
20559 static dsfloat time_old = 0.0;
20560
20561 /* Read status and timestamp info (previous message) */
20562 if (can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].timestamp !=
20563 time_old) {
20564 /* ... save timestamp info for the calculation of the RX status
20565 during the consecutive sample hit*/
20566 time_old = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].
20567 timestamp;
20568
20569 /* ... set the processed flag to one */
20570 L4_MABX_B.SFunction1_o9_p = 1.0;
20571 L4_MABX_B.SFunction1_o10_ds = (real_T)
20572 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].timestamp;
20573 L4_MABX_B.SFunction1_o11_g = (real_T)
20574 can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].deltatime;
20575 CAN_Msg = can_type1_M1_C1_XTD[CANTP1_M1_C1_RXSRVC_XTD_0x18FFF713].data;
20576
20577 /* Decode CAN message */
20578 {
20579 {
20580 rtican_Signal_t CAN_Sgn;
20581
20582 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20583 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20584 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20585 L4_MABX_B.SFunction1_o1_h0 = ((real_T) CAN_Sgn.UnsignedSgn);
20586
20587 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20588 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20589 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20590 L4_MABX_B.SFunction1_o2_ij = ((real_T) CAN_Sgn.UnsignedSgn);
20591
20592 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20593 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20594 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20595 L4_MABX_B.SFunction1_o3_h21 = ((real_T) CAN_Sgn.UnsignedSgn);
20596
20597 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
20598 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
20599 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20600 L4_MABX_B.SFunction1_o4_hg = ((real_T) CAN_Sgn.UnsignedSgn);
20601
20602 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
20603 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
20604 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20605 L4_MABX_B.SFunction1_o5_f5 = ((real_T) CAN_Sgn.UnsignedSgn);
20606
20607 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
20608 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
20609 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20610 L4_MABX_B.SFunction1_o6_o = ((real_T) CAN_Sgn.UnsignedSgn);
20611
20612 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
20613 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
20614 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20615 L4_MABX_B.SFunction1_o7_b = ((real_T) CAN_Sgn.UnsignedSgn);
20616
20617 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
20618 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
20619 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20620 L4_MABX_B.SFunction1_o8_pk = ((real_T) CAN_Sgn.UnsignedSgn);
20621 }
20622 }
20623 } else {
20624 /* set RX status to 0 because no new message has arrived */
20625 L4_MABX_B.SFunction1_o9_p = 0.0;
20626 }
20627 }
20628 }
20629
20630 /* End of Outputs for SubSystem: '<S581>/CAN_TYPE1_RX_M1_C1' */
20631
20632 /* RelationalOperator: '<S589>/Operator' incorporates:
20633 * Constant: '<S431>/Constant'
20634 * Constant: '<S584>/Constant1'
20635 */
20636 L4_MABX_B.Operator_i1m = (PROPB_REAX_CHANNEL_APV ==
20637 L4_MABX_P.Constant1_Value_lc);
20638
20639 /* Outputs for Enabled SubSystem: '<S582>/CAN_TYPE1_RX_M1_C2' incorporates:
20640 * EnablePort: '<S586>/Enable'
20641 */
20642 if (L4_MABX_B.Operator_i1m) {
20643 /* S-Function (rti_commonblock): '<S586>/S-Function1' */
20644 /* This comment workarounds a code generation problem */
20645
20646 /* dSPACE RTICAN RX Message Block: "PropB_REAX_4_13" Id:419428115 */
20647 {
20648 UInt32 *CAN_Msg;
20649 static dsfloat time_old = 0.0;
20650
20651 /* Read status and timestamp info (previous message) */
20652 if (can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].timestamp !=
20653 time_old) {
20654 /* ... save timestamp info for the calculation of the RX status
20655 during the consecutive sample hit*/
20656 time_old = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].
20657 timestamp;
20658
20659 /* ... set the processed flag to one */
20660 L4_MABX_B.SFunction1_o9_c = 1.0;
20661 L4_MABX_B.SFunction1_o10_d = (real_T)
20662 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].timestamp;
20663 L4_MABX_B.SFunction1_o11_ad = (real_T)
20664 can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].deltatime;
20665 CAN_Msg = can_type1_M1_C2_XTD[CANTP1_M1_C2_RXSRVC_XTD_0x18FFF713].data;
20666
20667 /* Decode CAN message */
20668 {
20669 {
20670 rtican_Signal_t CAN_Sgn;
20671
20672 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20673 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20674 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20675 L4_MABX_B.SFunction1_o1_k = ((real_T) CAN_Sgn.UnsignedSgn);
20676
20677 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20678 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20679 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20680 L4_MABX_B.SFunction1_o2_lt = ((real_T) CAN_Sgn.UnsignedSgn);
20681
20682 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20683 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20684 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20685 L4_MABX_B.SFunction1_o3_lj = ((real_T) CAN_Sgn.UnsignedSgn);
20686
20687 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
20688 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
20689 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20690 L4_MABX_B.SFunction1_o4_g2 = ((real_T) CAN_Sgn.UnsignedSgn);
20691
20692 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
20693 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
20694 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20695 L4_MABX_B.SFunction1_o5_l = ((real_T) CAN_Sgn.UnsignedSgn);
20696
20697 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
20698 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
20699 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20700 L4_MABX_B.SFunction1_o6_eq = ((real_T) CAN_Sgn.UnsignedSgn);
20701
20702 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
20703 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
20704 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20705 L4_MABX_B.SFunction1_o7_c = ((real_T) CAN_Sgn.UnsignedSgn);
20706
20707 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
20708 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
20709 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20710 L4_MABX_B.SFunction1_o8_gr = ((real_T) CAN_Sgn.UnsignedSgn);
20711 }
20712 }
20713 } else {
20714 /* set RX status to 0 because no new message has arrived */
20715 L4_MABX_B.SFunction1_o9_c = 0.0;
20716 }
20717 }
20718 }
20719
20720 /* End of Outputs for SubSystem: '<S582>/CAN_TYPE1_RX_M1_C2' */
20721
20722 /* RelationalOperator: '<S593>/Operator' incorporates:
20723 * Constant: '<S431>/Constant'
20724 * Constant: '<S584>/Constant5'
20725 */
20726 L4_MABX_B.Operator_lj = (PROPB_REAX_CHANNEL_APV ==
20727 L4_MABX_P.Constant5_Value_lh);
20728
20729 /* Outputs for Enabled SubSystem: '<S583>/CAN_TYPE1_RX_M3_C2' incorporates:
20730 * EnablePort: '<S587>/Enable'
20731 */
20732 if (L4_MABX_B.Operator_lj) {
20733 /* S-Function (rti_commonblock): '<S587>/S-Function1' */
20734 /* This comment workarounds a code generation problem */
20735
20736 /* dSPACE RTICAN RX Message Block: "PropB_REAX_4_13" Id:419428115 */
20737 {
20738 UInt32 *CAN_Msg;
20739 static dsfloat time_old = 0.0;
20740
20741 /* Read status and timestamp info (previous message) */
20742 if (can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF713].timestamp !=
20743 time_old) {
20744 /* ... save timestamp info for the calculation of the RX status
20745 during the consecutive sample hit*/
20746 time_old = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF713].
20747 timestamp;
20748
20749 /* ... set the processed flag to one */
20750 L4_MABX_B.SFunction1_o9_n = 1.0;
20751 L4_MABX_B.SFunction1_o10_g = (real_T)
20752 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF713].timestamp;
20753 L4_MABX_B.SFunction1_o11_n = (real_T)
20754 can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF713].deltatime;
20755 CAN_Msg = can_type1_M3_C2_XTD[CANTP1_M3_C2_RXSRVC_XTD_0x18FFF713].data;
20756
20757 /* Decode CAN message */
20758 {
20759 {
20760 rtican_Signal_t CAN_Sgn;
20761
20762 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
20763 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[0];
20764 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20765 L4_MABX_B.SFunction1_o1_oa = ((real_T) CAN_Sgn.UnsignedSgn);
20766
20767 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
20768 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[1];
20769 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20770 L4_MABX_B.SFunction1_o2_bm = ((real_T) CAN_Sgn.UnsignedSgn);
20771
20772 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
20773 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[2];
20774 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20775 L4_MABX_B.SFunction1_o3_dl = ((real_T) CAN_Sgn.UnsignedSgn);
20776
20777 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
20778 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[3];
20779 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20780 L4_MABX_B.SFunction1_o4_gd = ((real_T) CAN_Sgn.UnsignedSgn);
20781
20782 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
20783 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[4];
20784 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20785 L4_MABX_B.SFunction1_o5_k = ((real_T) CAN_Sgn.UnsignedSgn);
20786
20787 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
20788 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[5];
20789 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20790 L4_MABX_B.SFunction1_o6_iy = ((real_T) CAN_Sgn.UnsignedSgn);
20791
20792 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
20793 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[6];
20794 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20795 L4_MABX_B.SFunction1_o7_nw = ((real_T) CAN_Sgn.UnsignedSgn);
20796
20797 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
20798 CAN_Sgn.SgnBytes.Byte0 = CAN_Msg[7];
20799 CAN_Sgn.UnsignedSgn &= 0x000000FF;
20800 L4_MABX_B.SFunction1_o8_ki = ((real_T) CAN_Sgn.UnsignedSgn);
20801 }
20802 }
20803 } else {
20804 /* set RX status to 0 because no new message has arrived */
20805 L4_MABX_B.SFunction1_o9_n = 0.0;
20806 }
20807 }
20808 }
20809
20810 /* End of Outputs for SubSystem: '<S583>/CAN_TYPE1_RX_M3_C2' */
20811
20812 /* DataTypeConversion: '<S583>/Data Type Conversion' */
20813 PositionFinalLimited = L4_MABX_B.SFunction1_o1_oa;
20814 if (PositionFinalLimited < 256.0) {
20815 if (PositionFinalLimited >= 0.0) {
20816 starting_index = (uint8_T)PositionFinalLimited;
20817 } else {
20818 starting_index = 0U;
20819 }
20820 } else {
20821 starting_index = MAX_uint8_T;
20822 }
20823
20824 L4_MABX_B.DataTypeConversion_g = starting_index;
20825
20826 /* End of DataTypeConversion: '<S583>/Data Type Conversion' */
20827
20828 /* DataTypeConversion: '<S583>/Data Type Conversion1' */
20829 PositionFinalLimited = L4_MABX_B.SFunction1_o2_bm;
20830 if (PositionFinalLimited < 256.0) {
20831 if (PositionFinalLimited >= 0.0) {
20832 starting_index = (uint8_T)PositionFinalLimited;
20833 } else {
20834 starting_index = 0U;
20835 }
20836 } else {
20837 starting_index = MAX_uint8_T;
20838 }
20839
20840 L4_MABX_B.DataTypeConversion1_pw = starting_index;
20841
20842 /* End of DataTypeConversion: '<S583>/Data Type Conversion1' */
20843
20844 /* DataTypeConversion: '<S583>/Data Type Conversion2' */
20845 PositionFinalLimited = L4_MABX_B.SFunction1_o3_dl;
20846 if (PositionFinalLimited < 256.0) {
20847 if (PositionFinalLimited >= 0.0) {
20848 starting_index = (uint8_T)PositionFinalLimited;
20849 } else {
20850 starting_index = 0U;
20851 }
20852 } else {
20853 starting_index = MAX_uint8_T;
20854 }
20855
20856 L4_MABX_B.DataTypeConversion2_ae = starting_index;
20857
20858 /* End of DataTypeConversion: '<S583>/Data Type Conversion2' */
20859
20860 /* DataTypeConversion: '<S583>/Data Type Conversion3' */
20861 PositionFinalLimited = L4_MABX_B.SFunction1_o4_gd;
20862 if (PositionFinalLimited < 256.0) {
20863 if (PositionFinalLimited >= 0.0) {
20864 starting_index = (uint8_T)PositionFinalLimited;
20865 } else {
20866 starting_index = 0U;
20867 }
20868 } else {
20869 starting_index = MAX_uint8_T;
20870 }
20871
20872 L4_MABX_B.DataTypeConversion3_is = starting_index;
20873
20874 /* End of DataTypeConversion: '<S583>/Data Type Conversion3' */
20875
20876 /* DataTypeConversion: '<S583>/Data Type Conversion4' */
20877 PositionFinalLimited = L4_MABX_B.SFunction1_o5_k;
20878 if (PositionFinalLimited < 256.0) {
20879 if (PositionFinalLimited >= 0.0) {
20880 starting_index = (uint8_T)PositionFinalLimited;
20881 } else {
20882 starting_index = 0U;
20883 }
20884 } else {
20885 starting_index = MAX_uint8_T;
20886 }
20887
20888 L4_MABX_B.DataTypeConversion4_h = starting_index;
20889
20890 /* End of DataTypeConversion: '<S583>/Data Type Conversion4' */
20891
20892 /* DataTypeConversion: '<S583>/Data Type Conversion5' */
20893 PositionFinalLimited = L4_MABX_B.SFunction1_o6_iy;
20894 if (PositionFinalLimited < 256.0) {
20895 if (PositionFinalLimited >= 0.0) {
20896 starting_index = (uint8_T)PositionFinalLimited;
20897 } else {
20898 starting_index = 0U;
20899 }
20900 } else {
20901 starting_index = MAX_uint8_T;
20902 }
20903
20904 L4_MABX_B.DataTypeConversion5_n = starting_index;
20905
20906 /* End of DataTypeConversion: '<S583>/Data Type Conversion5' */
20907
20908 /* DataTypeConversion: '<S583>/Data Type Conversion6' */
20909 PositionFinalLimited = L4_MABX_B.SFunction1_o7_nw;
20910 if (PositionFinalLimited < 256.0) {
20911 if (PositionFinalLimited >= 0.0) {
20912 starting_index = (uint8_T)PositionFinalLimited;
20913 } else {
20914 starting_index = 0U;
20915 }
20916 } else {
20917 starting_index = MAX_uint8_T;
20918 }
20919
20920 L4_MABX_B.DataTypeConversion6_iv = starting_index;
20921
20922 /* End of DataTypeConversion: '<S583>/Data Type Conversion6' */
20923
20924 /* DataTypeConversion: '<S583>/Data Type Conversion7' */
20925 PositionFinalLimited = L4_MABX_B.SFunction1_o8_ki;
20926 if (PositionFinalLimited < 256.0) {
20927 if (PositionFinalLimited >= 0.0) {
20928 starting_index = (uint8_T)PositionFinalLimited;
20929 } else {
20930 starting_index = 0U;
20931 }
20932 } else {
20933 starting_index = MAX_uint8_T;
20934 }
20935
20936 L4_MABX_B.DataTypeConversion7_j = starting_index;
20937
20938 /* End of DataTypeConversion: '<S583>/Data Type Conversion7' */
20939
20940 /* MultiPortSwitch: '<S431>/Multiport_Switch' incorporates:
20941 * Constant: '<S431>/Constant'
20942 */
20943 switch (PROPB_REAX_CHANNEL_APV) {
20944 case ENUM_CAN_RX_T_RX_CAN_1:
20945 /* DataTypeConversion: '<S581>/Data Type Conversion' */
20946 PositionFinalLimited = L4_MABX_B.SFunction1_o1_h0;
20947 if (PositionFinalLimited < 256.0) {
20948 if (PositionFinalLimited >= 0.0) {
20949 starting_index = (uint8_T)PositionFinalLimited;
20950 } else {
20951 starting_index = 0U;
20952 }
20953 } else {
20954 starting_index = MAX_uint8_T;
20955 }
20956
20957 L4_MABX_B.DataTypeConversion_jj = starting_index;
20958
20959 /* End of DataTypeConversion: '<S581>/Data Type Conversion' */
20960
20961 /* DataTypeConversion: '<S581>/Data Type Conversion1' */
20962 PositionFinalLimited = L4_MABX_B.SFunction1_o2_ij;
20963 if (PositionFinalLimited < 256.0) {
20964 if (PositionFinalLimited >= 0.0) {
20965 starting_index = (uint8_T)PositionFinalLimited;
20966 } else {
20967 starting_index = 0U;
20968 }
20969 } else {
20970 starting_index = MAX_uint8_T;
20971 }
20972
20973 L4_MABX_B.DataTypeConversion1_m1 = starting_index;
20974
20975 /* End of DataTypeConversion: '<S581>/Data Type Conversion1' */
20976
20977 /* DataTypeConversion: '<S581>/Data Type Conversion2' */
20978 PositionFinalLimited = L4_MABX_B.SFunction1_o3_h21;
20979 if (PositionFinalLimited < 256.0) {
20980 if (PositionFinalLimited >= 0.0) {
20981 starting_index = (uint8_T)PositionFinalLimited;
20982 } else {
20983 starting_index = 0U;
20984 }
20985 } else {
20986 starting_index = MAX_uint8_T;
20987 }
20988
20989 L4_MABX_B.DataTypeConversion2_dy = starting_index;
20990
20991 /* End of DataTypeConversion: '<S581>/Data Type Conversion2' */
20992
20993 /* DataTypeConversion: '<S581>/Data Type Conversion3' */
20994 PositionFinalLimited = L4_MABX_B.SFunction1_o4_hg;
20995 if (PositionFinalLimited < 256.0) {
20996 if (PositionFinalLimited >= 0.0) {
20997 starting_index = (uint8_T)PositionFinalLimited;
20998 } else {
20999 starting_index = 0U;
21000 }
21001 } else {
21002 starting_index = MAX_uint8_T;
21003 }
21004
21005 L4_MABX_B.DataTypeConversion3_k1 = starting_index;
21006
21007 /* End of DataTypeConversion: '<S581>/Data Type Conversion3' */
21008
21009 /* DataTypeConversion: '<S581>/Data Type Conversion4' */
21010 PositionFinalLimited = L4_MABX_B.SFunction1_o5_f5;
21011 if (PositionFinalLimited < 256.0) {
21012 if (PositionFinalLimited >= 0.0) {
21013 starting_index = (uint8_T)PositionFinalLimited;
21014 } else {
21015 starting_index = 0U;
21016 }
21017 } else {
21018 starting_index = MAX_uint8_T;
21019 }
21020
21021 L4_MABX_B.DataTypeConversion4_em = starting_index;
21022
21023 /* End of DataTypeConversion: '<S581>/Data Type Conversion4' */
21024
21025 /* DataTypeConversion: '<S581>/Data Type Conversion5' */
21026 PositionFinalLimited = L4_MABX_B.SFunction1_o6_o;
21027 if (PositionFinalLimited < 256.0) {
21028 if (PositionFinalLimited >= 0.0) {
21029 starting_index = (uint8_T)PositionFinalLimited;
21030 } else {
21031 starting_index = 0U;
21032 }
21033 } else {
21034 starting_index = MAX_uint8_T;
21035 }
21036
21037 L4_MABX_B.DataTypeConversion5_ie = starting_index;
21038
21039 /* End of DataTypeConversion: '<S581>/Data Type Conversion5' */
21040
21041 /* DataTypeConversion: '<S581>/Data Type Conversion6' */
21042 PositionFinalLimited = L4_MABX_B.SFunction1_o7_b;
21043 if (PositionFinalLimited < 256.0) {
21044 if (PositionFinalLimited >= 0.0) {
21045 starting_index = (uint8_T)PositionFinalLimited;
21046 } else {
21047 starting_index = 0U;
21048 }
21049 } else {
21050 starting_index = MAX_uint8_T;
21051 }
21052
21053 L4_MABX_B.DataTypeConversion6_hv = starting_index;
21054
21055 /* End of DataTypeConversion: '<S581>/Data Type Conversion6' */
21056
21057 /* DataTypeConversion: '<S581>/Data Type Conversion7' */
21058 PositionFinalLimited = L4_MABX_B.SFunction1_o8_pk;
21059 if (PositionFinalLimited < 256.0) {
21060 if (PositionFinalLimited >= 0.0) {
21061 starting_index = (uint8_T)PositionFinalLimited;
21062 } else {
21063 starting_index = 0U;
21064 }
21065 } else {
21066 starting_index = MAX_uint8_T;
21067 }
21068
21069 L4_MABX_B.DataTypeConversion7_lz = starting_index;
21070
21071 /* End of DataTypeConversion: '<S581>/Data Type Conversion7' */
21072 L4_MABX_B.RawData_j[0] = L4_MABX_B.DataTypeConversion_jj;
21073 L4_MABX_B.RawData_j[1] = L4_MABX_B.DataTypeConversion1_m1;
21074 L4_MABX_B.RawData_j[2] = L4_MABX_B.DataTypeConversion2_dy;
21075 L4_MABX_B.RawData_j[3] = L4_MABX_B.DataTypeConversion3_k1;
21076 L4_MABX_B.RawData_j[4] = L4_MABX_B.DataTypeConversion4_em;
21077 L4_MABX_B.RawData_j[5] = L4_MABX_B.DataTypeConversion5_ie;
21078 L4_MABX_B.RawData_j[6] = L4_MABX_B.DataTypeConversion6_hv;
21079 L4_MABX_B.RawData_j[7] = L4_MABX_B.DataTypeConversion7_lz;
21080 break;
21081
21082 case ENUM_CAN_RX_T_RX_CAN_2:
21083 /* DataTypeConversion: '<S582>/Data Type Conversion' */
21084 PositionFinalLimited = L4_MABX_B.SFunction1_o1_k;
21085 if (PositionFinalLimited < 256.0) {
21086 if (PositionFinalLimited >= 0.0) {
21087 starting_index = (uint8_T)PositionFinalLimited;
21088 } else {
21089 starting_index = 0U;
21090 }
21091 } else {
21092 starting_index = MAX_uint8_T;
21093 }
21094
21095 L4_MABX_B.DataTypeConversion_fn = starting_index;
21096
21097 /* End of DataTypeConversion: '<S582>/Data Type Conversion' */
21098
21099 /* DataTypeConversion: '<S582>/Data Type Conversion1' */
21100 PositionFinalLimited = L4_MABX_B.SFunction1_o2_lt;
21101 if (PositionFinalLimited < 256.0) {
21102 if (PositionFinalLimited >= 0.0) {
21103 starting_index = (uint8_T)PositionFinalLimited;
21104 } else {
21105 starting_index = 0U;
21106 }
21107 } else {
21108 starting_index = MAX_uint8_T;
21109 }
21110
21111 L4_MABX_B.DataTypeConversion1_pk = starting_index;
21112
21113 /* End of DataTypeConversion: '<S582>/Data Type Conversion1' */
21114
21115 /* DataTypeConversion: '<S582>/Data Type Conversion2' */
21116 PositionFinalLimited = L4_MABX_B.SFunction1_o3_lj;
21117 if (PositionFinalLimited < 256.0) {
21118 if (PositionFinalLimited >= 0.0) {
21119 starting_index = (uint8_T)PositionFinalLimited;
21120 } else {
21121 starting_index = 0U;
21122 }
21123 } else {
21124 starting_index = MAX_uint8_T;
21125 }
21126
21127 L4_MABX_B.DataTypeConversion2_bm = starting_index;
21128
21129 /* End of DataTypeConversion: '<S582>/Data Type Conversion2' */
21130
21131 /* DataTypeConversion: '<S582>/Data Type Conversion3' */
21132 PositionFinalLimited = L4_MABX_B.SFunction1_o4_g2;
21133 if (PositionFinalLimited < 256.0) {
21134 if (PositionFinalLimited >= 0.0) {
21135 starting_index = (uint8_T)PositionFinalLimited;
21136 } else {
21137 starting_index = 0U;
21138 }
21139 } else {
21140 starting_index = MAX_uint8_T;
21141 }
21142
21143 L4_MABX_B.DataTypeConversion3_ff = starting_index;
21144
21145 /* End of DataTypeConversion: '<S582>/Data Type Conversion3' */
21146
21147 /* DataTypeConversion: '<S582>/Data Type Conversion4' */
21148 PositionFinalLimited = L4_MABX_B.SFunction1_o5_l;
21149 if (PositionFinalLimited < 256.0) {
21150 if (PositionFinalLimited >= 0.0) {
21151 starting_index = (uint8_T)PositionFinalLimited;
21152 } else {
21153 starting_index = 0U;
21154 }
21155 } else {
21156 starting_index = MAX_uint8_T;
21157 }
21158
21159 L4_MABX_B.DataTypeConversion4_h3 = starting_index;
21160
21161 /* End of DataTypeConversion: '<S582>/Data Type Conversion4' */
21162
21163 /* DataTypeConversion: '<S582>/Data Type Conversion5' */
21164 PositionFinalLimited = L4_MABX_B.SFunction1_o6_eq;
21165 if (PositionFinalLimited < 256.0) {
21166 if (PositionFinalLimited >= 0.0) {
21167 starting_index = (uint8_T)PositionFinalLimited;
21168 } else {
21169 starting_index = 0U;
21170 }
21171 } else {
21172 starting_index = MAX_uint8_T;
21173 }
21174
21175 L4_MABX_B.DataTypeConversion5_g = starting_index;
21176
21177 /* End of DataTypeConversion: '<S582>/Data Type Conversion5' */
21178
21179 /* DataTypeConversion: '<S582>/Data Type Conversion6' */
21180 PositionFinalLimited = L4_MABX_B.SFunction1_o7_c;
21181 if (PositionFinalLimited < 256.0) {
21182 if (PositionFinalLimited >= 0.0) {
21183 starting_index = (uint8_T)PositionFinalLimited;
21184 } else {
21185 starting_index = 0U;
21186 }
21187 } else {
21188 starting_index = MAX_uint8_T;
21189 }
21190
21191 L4_MABX_B.DataTypeConversion6_b = starting_index;
21192
21193 /* End of DataTypeConversion: '<S582>/Data Type Conversion6' */
21194
21195 /* DataTypeConversion: '<S582>/Data Type Conversion7' */
21196 PositionFinalLimited = L4_MABX_B.SFunction1_o8_gr;
21197 if (PositionFinalLimited < 256.0) {
21198 if (PositionFinalLimited >= 0.0) {
21199 starting_index = (uint8_T)PositionFinalLimited;
21200 } else {
21201 starting_index = 0U;
21202 }
21203 } else {
21204 starting_index = MAX_uint8_T;
21205 }
21206
21207 L4_MABX_B.DataTypeConversion7_pw = starting_index;
21208
21209 /* End of DataTypeConversion: '<S582>/Data Type Conversion7' */
21210 L4_MABX_B.RawData_j[0] = L4_MABX_B.DataTypeConversion_fn;
21211 L4_MABX_B.RawData_j[1] = L4_MABX_B.DataTypeConversion1_pk;
21212 L4_MABX_B.RawData_j[2] = L4_MABX_B.DataTypeConversion2_bm;
21213 L4_MABX_B.RawData_j[3] = L4_MABX_B.DataTypeConversion3_ff;
21214 L4_MABX_B.RawData_j[4] = L4_MABX_B.DataTypeConversion4_h3;
21215 L4_MABX_B.RawData_j[5] = L4_MABX_B.DataTypeConversion5_g;
21216 L4_MABX_B.RawData_j[6] = L4_MABX_B.DataTypeConversion6_b;
21217 L4_MABX_B.RawData_j[7] = L4_MABX_B.DataTypeConversion7_pw;
21218 break;
21219
21220 case ENUM_CAN_RX_T_RX_CAN_3:
21221 L4_MABX_B.RawData_j[0] = L4_MABX_B.DataTypeConversion_g;
21222 L4_MABX_B.RawData_j[1] = L4_MABX_B.DataTypeConversion1_pw;
21223 L4_MABX_B.RawData_j[2] = L4_MABX_B.DataTypeConversion2_ae;
21224 L4_MABX_B.RawData_j[3] = L4_MABX_B.DataTypeConversion3_is;
21225 L4_MABX_B.RawData_j[4] = L4_MABX_B.DataTypeConversion4_h;
21226 L4_MABX_B.RawData_j[5] = L4_MABX_B.DataTypeConversion5_n;
21227 L4_MABX_B.RawData_j[6] = L4_MABX_B.DataTypeConversion6_iv;
21228 L4_MABX_B.RawData_j[7] = L4_MABX_B.DataTypeConversion7_j;
21229 break;
21230
21231 case ENUM_CAN_RX_T_RX_CAN_4:
21232 L4_MABX_B.RawData_j[0] = L4_MABX_B.DataTypeConversion_g;
21233 L4_MABX_B.RawData_j[1] = L4_MABX_B.DataTypeConversion1_pw;
21234 L4_MABX_B.RawData_j[2] = L4_MABX_B.DataTypeConversion2_ae;
21235 L4_MABX_B.RawData_j[3] = L4_MABX_B.DataTypeConversion3_is;
21236 L4_MABX_B.RawData_j[4] = L4_MABX_B.DataTypeConversion4_h;
21237 L4_MABX_B.RawData_j[5] = L4_MABX_B.DataTypeConversion5_n;
21238 L4_MABX_B.RawData_j[6] = L4_MABX_B.DataTypeConversion6_iv;
21239 L4_MABX_B.RawData_j[7] = L4_MABX_B.DataTypeConversion7_j;
21240 break;
21241
21242 case ENUM_CAN_RX_T_RX_CAN_5:
21243 L4_MABX_B.RawData_j[0] = L4_MABX_B.DataTypeConversion_g;
21244 L4_MABX_B.RawData_j[1] = L4_MABX_B.DataTypeConversion1_pw;
21245 L4_MABX_B.RawData_j[2] = L4_MABX_B.DataTypeConversion2_ae;
21246 L4_MABX_B.RawData_j[3] = L4_MABX_B.DataTypeConversion3_is;
21247 L4_MABX_B.RawData_j[4] = L4_MABX_B.DataTypeConversion4_h;
21248 L4_MABX_B.RawData_j[5] = L4_MABX_B.DataTypeConversion5_n;
21249 L4_MABX_B.RawData_j[6] = L4_MABX_B.DataTypeConversion6_iv;
21250 L4_MABX_B.RawData_j[7] = L4_MABX_B.DataTypeConversion7_j;
21251 break;
21252
21253 case ENUM_CAN_RX_T_RX_CAN_6:
21254 L4_MABX_B.RawData_j[0] = L4_MABX_B.DataTypeConversion_g;
21255 L4_MABX_B.RawData_j[1] = L4_MABX_B.DataTypeConversion1_pw;
21256 L4_MABX_B.RawData_j[2] = L4_MABX_B.DataTypeConversion2_ae;
21257 L4_MABX_B.RawData_j[3] = L4_MABX_B.DataTypeConversion3_is;
21258 L4_MABX_B.RawData_j[4] = L4_MABX_B.DataTypeConversion4_h;
21259 L4_MABX_B.RawData_j[5] = L4_MABX_B.DataTypeConversion5_n;
21260 L4_MABX_B.RawData_j[6] = L4_MABX_B.DataTypeConversion6_iv;
21261 L4_MABX_B.RawData_j[7] = L4_MABX_B.DataTypeConversion7_j;
21262 break;
21263
21264 default:
21265 L4_MABX_B.RawData_j[0] = L4_MABX_B.DataTypeConversion_g;
21266 L4_MABX_B.RawData_j[1] = L4_MABX_B.DataTypeConversion1_pw;
21267 L4_MABX_B.RawData_j[2] = L4_MABX_B.DataTypeConversion2_ae;
21268 L4_MABX_B.RawData_j[3] = L4_MABX_B.DataTypeConversion3_is;
21269 L4_MABX_B.RawData_j[4] = L4_MABX_B.DataTypeConversion4_h;
21270 L4_MABX_B.RawData_j[5] = L4_MABX_B.DataTypeConversion5_n;
21271 L4_MABX_B.RawData_j[6] = L4_MABX_B.DataTypeConversion6_iv;
21272 L4_MABX_B.RawData_j[7] = L4_MABX_B.DataTypeConversion7_j;
21273 break;
21274 }
21275
21276 /* S-Function (sfix_bitop): '<S670>/Operator' */
21277 L4_MABX_B.Operator_ct = (uint8_T)(L4_MABX_B.RawData_j[0] &
21278 L4_MABX_P.Operator_BitMask_l4);
21279
21280 /* DataTypeConversion: '<S670>/DataType' */
21281 L4_MABX_B.DataType_nn = L4_MABX_B.Operator_ct;
21282
21283 /* ArithShift: '<S663>/Shift_Arithmetic ' */
21284 L4_MABX_B.Shift_Arithmetic_n = (uint8_T)((uint32_T)L4_MABX_B.DataType_nn >> 1);
21285
21286 /* DataTypeConversion: '<S663>/Data Type Conversion' */
21287 L4_MABX_B.PropB_REAX_4_PositionIndexValid = (L4_MABX_B.Shift_Arithmetic_n != 0);
21288
21289 /* DataTypeConversion: '<S406>/Data Type Conversion' */
21290 L4_MABX_B.DataTypeConversion_c5 = L4_MABX_B.PropB_REAX_4_PositionIndexValid;
21291
21292 /* S-Function (sfix_bitop): '<S669>/Operator' */
21293 L4_MABX_B.Operator_bv = (uint8_T)(L4_MABX_B.RawData_j[0] &
21294 L4_MABX_P.Operator_BitMask_fb);
21295
21296 /* DataTypeConversion: '<S669>/DataType' */
21297 L4_MABX_B.DataType_odd = (L4_MABX_B.Operator_bv != 0);
21298
21299 /* DataTypeConversion: '<S406>/Data Type Conversion1' */
21300 L4_MABX_B.DataTypeConversion1_og = L4_MABX_B.DataType_odd;
21301
21302 /* S-Function (sfix_bitop): '<S671>/Operator' */
21303 L4_MABX_B.Operator_lu = (uint8_T)(L4_MABX_B.RawData_j[0] &
21304 L4_MABX_P.Operator_BitMask_dou);
21305
21306 /* DataTypeConversion: '<S671>/DataType' */
21307 L4_MABX_B.DataType_fh = L4_MABX_B.Operator_lu;
21308
21309 /* ArithShift: '<S663>/Shift_Arithmetic 1' */
21310 L4_MABX_B.Shift_Arithmetic1_ii = (uint8_T)((uint32_T)L4_MABX_B.DataType_fh >>
21311 2);
21312
21313 /* DataTypeConversion: '<S663>/Data Type Conversion1' */
21314 L4_MABX_B.PropB_REAX_4_DriverControlledEf = (L4_MABX_B.Shift_Arithmetic1_ii !=
21315 0);
21316
21317 /* DataTypeConversion: '<S406>/Data Type Conversion2' */
21318 L4_MABX_B.DataTypeConversion2_nz = L4_MABX_B.PropB_REAX_4_DriverControlledEf;
21319
21320 /* SignalConversion: '<S664>/SignalConversion' */
21321 L4_MABX_B.PropB_REAX_4_ControlOperatingMo = L4_MABX_B.RawData_j[1];
21322
21323 /* DataTypeConversion: '<S406>/Data Type Conversion3' */
21324 L4_MABX_B.DataTypeConversion3_b2 = L4_MABX_B.PropB_REAX_4_ControlOperatingMo;
21325
21326 /* SignalConversion: '<S665>/SignalConversion' */
21327 L4_MABX_B.PropB_REAX_4_SystemMode = L4_MABX_B.RawData_j[2];
21328
21329 /* DataTypeConversion: '<S406>/Data Type Conversion4' */
21330 L4_MABX_B.DataTypeConversion4_a = L4_MABX_B.PropB_REAX_4_SystemMode;
21331
21332 /* DataTypeConversion: '<S666>/Data Type Conversion4' */
21333 L4_MABX_B.DataTypeConversion4_og = (int8_T)L4_MABX_B.RawData_j[4];
21334
21335 /* DataTypeConversion: '<S666>/Data Type Conversion5' */
21336 L4_MABX_B.PropB_REAX_4_PercHandwheelTorqu = L4_MABX_B.DataTypeConversion4_og;
21337
21338 /* DataTypeConversion: '<S406>/Data Type Conversion5' */
21339 L4_MABX_B.DataTypeConversion5_k = L4_MABX_B.PropB_REAX_4_PercHandwheelTorqu;
21340
21341 /* DataTypeConversion: '<S667>/Data Type Conversion6' */
21342 L4_MABX_B.DataTypeConversion6_g2 = L4_MABX_B.RawData_j[5];
21343
21344 /* DataTypeConversion: '<S667>/Data Type Conversion7' */
21345 L4_MABX_B.DataTypeConversion7_k = L4_MABX_B.RawData_j[6];
21346
21347 /* ArithShift: '<S667>/Shift_Arithmetic 2' */
21348 L4_MABX_B.Shift_Arithmetic2_dy = (uint16_T)(L4_MABX_B.DataTypeConversion7_k <<
21349 8);
21350
21351 /* S-Function (sfix_bitop): '<S672>/Operator' */
21352 L4_MABX_B.Operator_bg = (uint16_T)(L4_MABX_B.DataTypeConversion6_g2 |
21353 L4_MABX_B.Shift_Arithmetic2_dy);
21354
21355 /* DataTypeConversion: '<S672>/DataType' */
21356 L4_MABX_B.DataType_gk = L4_MABX_B.Operator_bg;
21357
21358 /* DataTypeConversion: '<S667>/Data Type Conversion8' */
21359 L4_MABX_B.DataTypeConversion8_p = (int16_T)L4_MABX_B.DataType_gk;
21360
21361 /* DataTypeConversion: '<S667>/Data Type Conversion9' */
21362 L4_MABX_B.PropB_REAX_4_AbsSteeringAngle = L4_MABX_B.DataTypeConversion8_p;
21363
21364 /* DataTypeConversion: '<S406>/Data Type Conversion6' */
21365 L4_MABX_B.DataTypeConversion6_i = L4_MABX_B.PropB_REAX_4_AbsSteeringAngle;
21366
21367 /* DataTypeConversion: '<S668>/Data Type Conversion10' */
21368 L4_MABX_B.DataTypeConversion10_k = (int8_T)L4_MABX_B.RawData_j[7];
21369
21370 /* DataTypeConversion: '<S668>/Data Type Conversion11' */
21371 L4_MABX_B.PropB_REAX_4_PercMotorTorque = L4_MABX_B.DataTypeConversion10_k;
21372
21373 /* DataTypeConversion: '<S406>/Data Type Conversion7' */
21374 L4_MABX_B.DataTypeConversion7_b = L4_MABX_B.PropB_REAX_4_PercMotorTorque;
21375
21376 /* DataTypeConversion: '<S583>/Data Type Conversion8' */
21377 L4_MABX_B.RX_status_g1 = (L4_MABX_B.SFunction1_o9_n != 0.0);
21378
21379 /* MultiPortSwitch: '<S431>/Multiport_Switch' incorporates:
21380 * Constant: '<S431>/Constant'
21381 */
21382 switch (PROPB_REAX_CHANNEL_APV) {
21383 case ENUM_CAN_RX_T_RX_CAN_1:
21384 /* DataTypeConversion: '<S581>/Data Type Conversion8' */
21385 L4_MABX_B.RX_status_hq = (L4_MABX_B.SFunction1_o9_p != 0.0);
21386 L4_MABX_B.RX_status_n5 = L4_MABX_B.RX_status_hq;
21387 break;
21388
21389 case ENUM_CAN_RX_T_RX_CAN_2:
21390 /* DataTypeConversion: '<S582>/Data Type Conversion8' */
21391 L4_MABX_B.RX_status_ect = (L4_MABX_B.SFunction1_o9_c != 0.0);
21392 L4_MABX_B.RX_status_n5 = L4_MABX_B.RX_status_ect;
21393 break;
21394
21395 case ENUM_CAN_RX_T_RX_CAN_3:
21396 L4_MABX_B.RX_status_n5 = L4_MABX_B.RX_status_g1;
21397 break;
21398
21399 case ENUM_CAN_RX_T_RX_CAN_4:
21400 L4_MABX_B.RX_status_n5 = L4_MABX_B.RX_status_g1;
21401 break;
21402
21403 case ENUM_CAN_RX_T_RX_CAN_5:
21404 L4_MABX_B.RX_status_n5 = L4_MABX_B.RX_status_g1;
21405 break;
21406
21407 case ENUM_CAN_RX_T_RX_CAN_6:
21408 L4_MABX_B.RX_status_n5 = L4_MABX_B.RX_status_g1;
21409 break;
21410
21411 default:
21412 L4_MABX_B.RX_status_n5 = L4_MABX_B.RX_status_g1;
21413 break;
21414 }
21415
21416 /* DataTypeConversion: '<S583>/Data Type Conversion9' */
21417 L4_MABX_B.RX_time_ml = L4_MABX_B.SFunction1_o10_g;
21418
21419 /* MultiPortSwitch: '<S431>/Multiport_Switch' incorporates:
21420 * Constant: '<S431>/Constant'
21421 */
21422 switch (PROPB_REAX_CHANNEL_APV) {
21423 case ENUM_CAN_RX_T_RX_CAN_1:
21424 /* DataTypeConversion: '<S581>/Data Type Conversion9' */
21425 L4_MABX_B.RX_time_fv = L4_MABX_B.SFunction1_o10_ds;
21426 L4_MABX_B.RX_time_en = L4_MABX_B.RX_time_fv;
21427 break;
21428
21429 case ENUM_CAN_RX_T_RX_CAN_2:
21430 /* DataTypeConversion: '<S582>/Data Type Conversion9' */
21431 L4_MABX_B.RX_time_ih = L4_MABX_B.SFunction1_o10_d;
21432 L4_MABX_B.RX_time_en = L4_MABX_B.RX_time_ih;
21433 break;
21434
21435 case ENUM_CAN_RX_T_RX_CAN_3:
21436 L4_MABX_B.RX_time_en = L4_MABX_B.RX_time_ml;
21437 break;
21438
21439 case ENUM_CAN_RX_T_RX_CAN_4:
21440 L4_MABX_B.RX_time_en = L4_MABX_B.RX_time_ml;
21441 break;
21442
21443 case ENUM_CAN_RX_T_RX_CAN_5:
21444 L4_MABX_B.RX_time_en = L4_MABX_B.RX_time_ml;
21445 break;
21446
21447 case ENUM_CAN_RX_T_RX_CAN_6:
21448 L4_MABX_B.RX_time_en = L4_MABX_B.RX_time_ml;
21449 break;
21450
21451 default:
21452 L4_MABX_B.RX_time_en = L4_MABX_B.RX_time_ml;
21453 break;
21454 }
21455
21456 /* DataTypeConversion: '<S583>/Data Type Conversion10' */
21457 L4_MABX_B.RX_delta_time_l2 = L4_MABX_B.SFunction1_o11_n;
21458
21459 /* MultiPortSwitch: '<S431>/Multiport_Switch' incorporates:
21460 * Constant: '<S431>/Constant'
21461 */
21462 switch (PROPB_REAX_CHANNEL_APV) {
21463 case ENUM_CAN_RX_T_RX_CAN_1:
21464 /* DataTypeConversion: '<S581>/Data Type Conversion10' */
21465 L4_MABX_B.RX_delta_time_fr = L4_MABX_B.SFunction1_o11_g;
21466 L4_MABX_B.RX_delta_time_e1 = L4_MABX_B.RX_delta_time_fr;
21467 break;
21468
21469 case ENUM_CAN_RX_T_RX_CAN_2:
21470 /* DataTypeConversion: '<S582>/Data Type Conversion10' */
21471 L4_MABX_B.RX_delta_time_mpj = L4_MABX_B.SFunction1_o11_ad;
21472 L4_MABX_B.RX_delta_time_e1 = L4_MABX_B.RX_delta_time_mpj;
21473 break;
21474
21475 case ENUM_CAN_RX_T_RX_CAN_3:
21476 L4_MABX_B.RX_delta_time_e1 = L4_MABX_B.RX_delta_time_l2;
21477 break;
21478
21479 case ENUM_CAN_RX_T_RX_CAN_4:
21480 L4_MABX_B.RX_delta_time_e1 = L4_MABX_B.RX_delta_time_l2;
21481 break;
21482
21483 case ENUM_CAN_RX_T_RX_CAN_5:
21484 L4_MABX_B.RX_delta_time_e1 = L4_MABX_B.RX_delta_time_l2;
21485 break;
21486
21487 case ENUM_CAN_RX_T_RX_CAN_6:
21488 L4_MABX_B.RX_delta_time_e1 = L4_MABX_B.RX_delta_time_l2;
21489 break;
21490
21491 default:
21492 L4_MABX_B.RX_delta_time_e1 = L4_MABX_B.RX_delta_time_l2;
21493 break;
21494 }
21495
21496 /* RelationalOperator: '<S590>/Operator' incorporates:
21497 * Constant: '<S431>/Constant'
21498 * Constant: '<S584>/Constant2'
21499 */
21500 L4_MABX_B.Operator_bvn = (PROPB_REAX_CHANNEL_APV ==
21501 L4_MABX_P.Constant2_Value_by);
21502
21503 /* RelationalOperator: '<S591>/Operator' incorporates:
21504 * Constant: '<S431>/Constant'
21505 * Constant: '<S584>/Constant3'
21506 */
21507 L4_MABX_B.Operator_or = (PROPB_REAX_CHANNEL_APV ==
21508 L4_MABX_P.Constant3_Value_iv);
21509
21510 /* RelationalOperator: '<S592>/Operator' incorporates:
21511 * Constant: '<S431>/Constant'
21512 * Constant: '<S584>/Constant4'
21513 */
21514 L4_MABX_B.Operator_f1b = (PROPB_REAX_CHANNEL_APV ==
21515 L4_MABX_P.Constant4_Value_f);
21516
21517 /* S-Function (rti_commonblock): '<S446>/S-Function1' */
21518 /* This comment workarounds a code generation problem */
21519
21520 /* S-Function (rti_commonblock): '<S447>/S-Function1' */
21521 /* This comment workarounds a code generation problem */
21522
21523 /* S-Function (rti_commonblock): '<S448>/S-Function1' */
21524 /* This comment workarounds a code generation problem */
21525
21526 /* S-Function (rti_commonblock): '<S449>/S-Function1' */
21527 /* This comment workarounds a code generation problem */
21528
21529 /* S-Function (rti_commonblock): '<S450>/S-Function1' */
21530 /* This comment workarounds a code generation problem */
21531
21532 /* S-Function (rti_commonblock): '<S451>/S-Function1' */
21533 /* This comment workarounds a code generation problem */
21534
21535 /* S-Function (rti_commonblock): '<S721>/S-Function1' */
21536 /* This comment workarounds a code generation problem */
21537
21538 /* DataTypeConversion: '<S402>/StartPBActive' */
21539 L4_MABX_B.StartPBActive = L4_MABX_B.SFunction1_b;
21540
21541 /* Logic: '<S402>/Logical Operator2' */
21542 EngagePB = !L4_MABX_B.StartPBActive;
21543
21544 /* Assertion: '<S749>/Assertion' */
21545 utAssert(L4_MABX_B.conjunction_c);
21546
21547 /* Assertion: '<S757>/Assertion' */
21548 utAssert(L4_MABX_B.conjunction);
21549
21550 /* Assertion: '<S765>/Assertion' */
21551 utAssert(L4_MABX_B.conjunction_g);
21552
21553 /* Assertion: '<S773>/Assertion' */
21554 utAssert(L4_MABX_B.conjunction_f);
21555
21556 /* Assertion: '<S781>/Assertion' */
21557 utAssert(L4_MABX_B.conjunction_i);
21558
21559 /* RelationalOperator: '<S748>/Relational Operator9' incorporates:
21560 * Constant: '<S729>/PWMSynchFaultLimMin'
21561 */
21562 L4_MABX_B.F_Fault_Soft_d = (L4_MABX_B.If_Then_Else_k.Switch !=
21563 L4_MABX_P.PWMSynchFaultLimMin_Value);
21564
21565 /* Gain: '<S402>/ShifterControlFreq' */
21566 L4_MABX_B.ShiftControlFreq = L4_MABX_P.ShifterControlFreq_Gain *
21567 L4_MABX_B.SFunction1_o1_g;
21568
21569 /* S-Function (rti_commonblock): '<S716>/S-Function1' */
21570 /* This comment workarounds a code generation problem */
21571 {
21572 /* dSPACE I/O Board DS1401STDADCT4 #1 Unit:ADC Group:ADC */
21573 adc_tp4_single_new_read(ADC_TP4_1_MODULE_ADDR,
21574 ADC_TP4_CH2,
21575 (dsfloat *)&L4_MABX_B.SFunction1_g);
21576 }
21577
21578 /* Gain: '<S402>/ShifterControlDC2' */
21579 L4_MABX_B.ShifterControlDC2 = L4_MABX_P.ShifterControlDC2_Gain *
21580 L4_MABX_B.SFunction1_g;
21581
21582 /* S-Function (rti_commonblock): '<S717>/S-Function1' */
21583 /* This comment workarounds a code generation problem */
21584 {
21585 /* dSPACE I/O Board DS1401STDADCT4 #1 Unit:ADC Group:ADC */
21586 adc_tp4_single_new_read(ADC_TP4_1_MODULE_ADDR,
21587 ADC_TP4_CH1,
21588 (dsfloat *)&L4_MABX_B.SFunction1_i);
21589 }
21590
21591 /* Gain: '<S402>/ShifterControlDC1' */
21592 L4_MABX_B.ShifterControlDC1 = L4_MABX_P.ShifterControlDC1_Gain *
21593 L4_MABX_B.SFunction1_i;
21594
21595 /* S-Function (rti_commonblock): '<S8>/S-Function1' */
21596 /* This comment workarounds a code generation problem */
21597
21598 /* S-Function (rti_commonblock): '<S9>/S-Function1' */
21599 /* This comment workarounds a code generation problem */
21600
21601 /* UnitDelay: '<S10>/Unit_Delay' */
21602 L4_MABX_B.Unit_Delay_jj = L4_MABX_DW.Unit_Delay_DSTATE_do;
21603
21604 /* Outputs for Enabled SubSystem: '<S10>/EnabledSubsystem' incorporates:
21605 * EnablePort: '<S1057>/Enable'
21606 */
21607 if (L4_MABX_B.Unit_Delay_jj) {
21608 /* Constant: '<S1057>/Constant' */
21609 memcpy(&GLB_SWVERSION_CPV_[0], &L4_MABX_P.GLB_SWVERSION_CPV[0], 100U *
21610 sizeof(uint8_T));
21611 }
21612
21613 /* End of Outputs for SubSystem: '<S10>/EnabledSubsystem' */
21614 /* user code (Output function Trailer for TID0) */
21615
21616 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
21617 /* EventChannel: 0 */
21618 if (tid == 0) {
21619 DSXCP_service(0);
21620 }
21621
21622 /* If subsystem generates rate grouping Output functions,
21623 * when tid is used in Output function for one rate,
21624 * all Output functions include tid as a local variable.
21625 * As result, some Output functions may have unused tid.
21626 */
21627 UNUSED_PARAMETER(tid);
21628}
21629
21630/* Model update function for TID0 */
21631void L4_MABX_update0(void) /* Sample time: [0.01s, 0.0s] */
21632{
21633 real_T denAccum;
21634 int32_T i;
21635
21636 /* Update for UnitDelay: '<S762>/FixPt Unit Delay2' incorporates:
21637 * Constant: '<S762>/FixPt Constant'
21638 */
21639 L4_MABX_DW.FixPtUnitDelay2_DSTATE = L4_MABX_P.FixPtConstant_Value_iq;
21640
21641 /* Update for UnitDelay: '<S762>/FixPt Unit Delay1' */
21642 L4_MABX_DW.FixPtUnitDelay1_DSTATE = L4_MABX_B.If_Then_Else_j.Switch;
21643
21644 /* Update for UnitDelay: '<S754>/FixPt Unit Delay2' incorporates:
21645 * Constant: '<S754>/FixPt Constant'
21646 */
21647 L4_MABX_DW.FixPtUnitDelay2_DSTATE_j = L4_MABX_P.FixPtConstant_Value_l;
21648
21649 /* Update for UnitDelay: '<S754>/FixPt Unit Delay1' */
21650 L4_MABX_DW.FixPtUnitDelay1_DSTATE_m = L4_MABX_B.If_Then_Else_f.Switch;
21651
21652 /* Update for UnitDelay: '<S778>/FixPt Unit Delay2' incorporates:
21653 * Constant: '<S778>/FixPt Constant'
21654 */
21655 L4_MABX_DW.FixPtUnitDelay2_DSTATE_f = L4_MABX_P.FixPtConstant_Value_dc;
21656
21657 /* Update for UnitDelay: '<S778>/FixPt Unit Delay1' */
21658 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a = L4_MABX_B.If_Then_Else_c.Switch;
21659
21660 /* Update for UnitDelay: '<S770>/FixPt Unit Delay2' incorporates:
21661 * Constant: '<S770>/FixPt Constant'
21662 */
21663 L4_MABX_DW.FixPtUnitDelay2_DSTATE_i = L4_MABX_P.FixPtConstant_Value_cl;
21664
21665 /* Update for UnitDelay: '<S770>/FixPt Unit Delay1' */
21666 L4_MABX_DW.FixPtUnitDelay1_DSTATE_my = L4_MABX_B.If_Then_Else_o.Switch;
21667
21668 /* Update for UnitDelay: '<S732>/Unit_Delay' incorporates:
21669 * Constant: '<S732>/Constant'
21670 */
21671 L4_MABX_DW.Unit_Delay_DSTATE_kp = L4_MABX_P.Constant_Value_po;
21672
21673 /* Update for UnitDelay: '<S799>/Unit_Delay1' incorporates:
21674 * Constant: '<S799>/Constant'
21675 */
21676 L4_MABX_DW.Unit_Delay1_DSTATE = L4_MABX_P.Constant_Value_oj;
21677
21678 /* Update for UnitDelay: '<S799>/Unit_Delay2' */
21679 L4_MABX_DW.Unit_Delay2_DSTATE = L4_MABX_B.If_Then_Else_h.Switch;
21680
21681 /* Update for UnitDelay: '<S732>/Unit_Delay1' incorporates:
21682 * Constant: '<S732>/Constant1'
21683 */
21684 L4_MABX_DW.Unit_Delay1_DSTATE_l = L4_MABX_P.Constant1_Value_f2;
21685
21686 /* Update for UnitDelay: '<S800>/Unit_Delay1' incorporates:
21687 * Constant: '<S800>/Constant'
21688 */
21689 L4_MABX_DW.Unit_Delay1_DSTATE_h = L4_MABX_P.Constant_Value_i1;
21690
21691 /* Update for UnitDelay: '<S800>/Unit_Delay2' */
21692 L4_MABX_DW.Unit_Delay2_DSTATE_i = L4_MABX_B.If_Then_Else_n.Switch;
21693
21694 /* Update for UnitDelay: '<S798>/FixPt Unit Delay2' incorporates:
21695 * Constant: '<S798>/FixPt Constant'
21696 */
21697 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o = L4_MABX_P.FixPtConstant_Value_jw;
21698
21699 /* Update for UnitDelay: '<S798>/FixPt Unit Delay1' */
21700 L4_MABX_DW.FixPtUnitDelay1_DSTATE_c = L4_MABX_B.If_Then_Else3_j3.Switch;
21701
21702 /* Update for UnitDelay: '<S797>/FixPt Unit Delay2' incorporates:
21703 * Constant: '<S797>/FixPt Constant'
21704 */
21705 L4_MABX_DW.FixPtUnitDelay2_DSTATE_d = L4_MABX_P.FixPtConstant_Value_dx;
21706
21707 /* Update for UnitDelay: '<S797>/FixPt Unit Delay1' */
21708 L4_MABX_DW.FixPtUnitDelay1_DSTATE_k = L4_MABX_B.If_Then_Else1_g.Switch;
21709
21710 /* Update for UnitDelay: '<S786>/FixPt Unit Delay2' incorporates:
21711 * Constant: '<S786>/FixPt Constant'
21712 */
21713 L4_MABX_DW.FixPtUnitDelay2_DSTATE_fl = L4_MABX_P.FixPtConstant_Value_jq;
21714
21715 /* Update for UnitDelay: '<S786>/FixPt Unit Delay1' */
21716 L4_MABX_DW.FixPtUnitDelay1_DSTATE_mr = L4_MABX_B.If_Then_Else_k.Switch;
21717
21718 /* Update for Enabled SubSystem: '<S726>/Slew_at_event' incorporates:
21719 * EnablePort: '<S733>/Enable'
21720 */
21721 if (L4_MABX_DW.Slew_at_event_MODE) {
21722 /* Update for UnitDelay: '<S804>/Unit_Delay' */
21723 L4_MABX_DW.Unit_Delay_DSTATE_eb = L4_MABX_B.LogicalOperator6_g;
21724
21725 /* Update for UnitDelay: '<S805>/Unit_Delay' incorporates:
21726 * Constant: '<S805>/Constant'
21727 */
21728 L4_MABX_DW.Unit_Delay_DSTATE_mm = L4_MABX_P.Constant_Value_m12;
21729
21730 /* Update for UnitDelay: '<S808>/FixPt Unit Delay2' incorporates:
21731 * Constant: '<S808>/FixPt Constant'
21732 */
21733 L4_MABX_DW.FixPtUnitDelay2_DSTATE_l = L4_MABX_P.FixPtConstant_Value_jkx;
21734
21735 /* Update for UnitDelay: '<S808>/FixPt Unit Delay1' */
21736 L4_MABX_DW.FixPtUnitDelay1_DSTATE_l = L4_MABX_B.If_Then_Else_ee.Switch;
21737
21738 /* Update for UnitDelay: '<S803>/Unit_Delay' */
21739 L4_MABX_DW.Unit_Delay_DSTATE_pn = L4_MABX_B.LogicalOperator_jl;
21740 }
21741
21742 /* End of Update for SubSystem: '<S726>/Slew_at_event' */
21743
21744 /* Update for Enabled SubSystem: '<S422>/CAN_RX_EC1_00' incorporates:
21745 * EnablePort: '<S506>/Enable'
21746 */
21747 if (L4_MABX_B.LogicalOperator_h) {
21748 /* Update for UnitDelay: '<S506>/Unit Delay' */
21749 for (i = 0; i < 39; i++) {
21750 L4_MABX_DW.UnitDelay_DSTATE_hw[i] = L4_MABX_B.Data_b[i];
21751 }
21752
21753 /* End of Update for UnitDelay: '<S506>/Unit Delay' */
21754
21755 /* Update for Enabled SubSystem: '<S506>/Decode' incorporates:
21756 * EnablePort: '<S509>/Enable'
21757 */
21758 if (L4_MABX_B.RX_status_l) {
21759 /* Update for UnitDelay: '<S509>/Unit_Delay' */
21760 L4_MABX_DW.Unit_Delay_DSTATE_k = L4_MABX_B.timeStamp_b;
21761 }
21762
21763 /* End of Update for SubSystem: '<S506>/Decode' */
21764 }
21765
21766 /* End of Update for SubSystem: '<S422>/CAN_RX_EC1_00' */
21767
21768 /* Update for UnitDelay: '<S635>/Unit_Delay3' */
21769 L4_MABX_DW.Unit_Delay3_DSTATE = L4_MABX_B.LogicalOperator2_e;
21770
21771 /* Update for Enabled SubSystem: '<S445>/CAN_RX_VI_00' incorporates:
21772 * EnablePort: '<S634>/Enable'
21773 */
21774 if (L4_MABX_B.LogicalOperator_hz) {
21775 /* Update for UnitDelay: '<S634>/Unit Delay' */
21776 for (i = 0; i < 17; i++) {
21777 L4_MABX_DW.UnitDelay_DSTATE_c[i] = L4_MABX_B.Data[i];
21778 }
21779
21780 /* End of Update for UnitDelay: '<S634>/Unit Delay' */
21781
21782 /* Update for Enabled SubSystem: '<S634>/Decode' incorporates:
21783 * EnablePort: '<S637>/Enable'
21784 */
21785 if (L4_MABX_B.RX_status_di) {
21786 /* Update for UnitDelay: '<S637>/Unit_Delay' */
21787 L4_MABX_DW.Unit_Delay_DSTATE_p = L4_MABX_B.timeStamp;
21788 }
21789
21790 /* End of Update for SubSystem: '<S634>/Decode' */
21791 }
21792
21793 /* End of Update for SubSystem: '<S445>/CAN_RX_VI_00' */
21794
21795 /* Update for UnitDelay: '<S635>/Unit_Delay' incorporates:
21796 * Constant: '<S635>/Constant'
21797 */
21798 L4_MABX_DW.Unit_Delay_DSTATE_mg = L4_MABX_P.Constant_Value_bz;
21799
21800 /* Update for UnitDelay: '<S641>/Unit_Delay' */
21801 L4_MABX_DW.Unit_Delay_DSTATE_a = L4_MABX_B.LogicalOperator1_k;
21802
21803 /* Update for UnitDelay: '<S3>/Unit_Delay' */
21804 L4_MABX_DW.Unit_Delay_79_DSTATE = EStop;
21805 L4_MABX_DW.Unit_Delay_80_DSTATE = EnableSw;
21806 L4_MABX_DW.Unit_Delay_81_DSTATE = EngagePB;
21807 L4_MABX_DW.Unit_Delay_45_DSTATE = AutonomousEnabled;
21808 L4_MABX_DW.Unit_Delay_47_DSTATE = MABX_Mode;
21809
21810 /* Update for UnitDelay: '<S391>/Delay Input1' */
21811 L4_MABX_DW.DelayInput1_DSTATE_p = L4_MABX_B.Compare_ax;
21812
21813 /* Update for UnitDelay: '<S389>/Unit Delay' */
21814 L4_MABX_DW.UnitDelay_DSTATE = L4_MABX_B.Count;
21815
21816 /* Update for Atomic SubSystem: '<S65>/Task_10ms' */
21817 /* Update for Enabled SubSystem: '<S79>/Throttle_controller_gov' incorporates:
21818 * EnablePort: '<S206>/Enable'
21819 */
21820 if (L4_MABX_DW.Throttle_controller_gov_MODE) {
21821 /* Update for UnitDelay: '<S214>/Unit_Delay1' incorporates:
21822 * Constant: '<S214>/Constant3'
21823 */
21824 L4_MABX_DW.Unit_Delay1_DSTATE_p1 = L4_MABX_P.Constant3_Value_lp;
21825
21826 /* Update for UnitDelay: '<S214>/Unit_Delay' */
21827 L4_MABX_DW.Unit_Delay_DSTATE_lq = L4_MABX_B.RelationalOperator_fl;
21828
21829 /* Update for UnitDelay: '<S241>/Unit_Delay' incorporates:
21830 * Constant: '<S241>/Constant'
21831 */
21832 L4_MABX_DW.Unit_Delay_DSTATE_be = L4_MABX_P.Constant_Value_ck;
21833
21834 /* Update for UnitDelay: '<S261>/Unit_Delay1' incorporates:
21835 * Constant: '<S261>/Constant'
21836 */
21837 L4_MABX_DW.Unit_Delay1_DSTATE_h5 = L4_MABX_P.Constant_Value_ot;
21838
21839 /* Update for UnitDelay: '<S262>/Unit_Delay' incorporates:
21840 * Constant: '<S262>/Constant'
21841 */
21842 L4_MABX_DW.Unit_Delay_DSTATE_fi = L4_MABX_P.Constant_Value_h0;
21843
21844 /* Update for UnitDelay: '<S266>/FixPt Unit Delay2' incorporates:
21845 * Constant: '<S266>/FixPt Constant'
21846 */
21847 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq = L4_MABX_P.FixPtConstant_Value_jk;
21848
21849 /* Update for UnitDelay: '<S266>/FixPt Unit Delay1' */
21850 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a0 = L4_MABX_B.If_Then_Else_cp.Switch;
21851
21852 /* Update for UnitDelay: '<S261>/Unit_Delay2' */
21853 L4_MABX_DW.Unit_Delay2_DSTATE_m = L4_MABX_B.If_Then_Else_k2.Switch;
21854
21855 /* Update for Enabled SubSystem: '<S238>/Calculate_D_term' */
21856 L4__Calculate_D_term_Update(&L4_MABX_B.Calculate_D_term_h,
21857 &L4_MABX_DW.Calculate_D_term_h, &L4_MABX_P.Calculate_D_term_h);
21858
21859 /* End of Update for SubSystem: '<S238>/Calculate_D_term' */
21860
21861 /* Update for UnitDelay: '<S216>/Unit_Delay' */
21862 L4_MABX_DW.Unit_Delay_DSTATE_fz = L4_MABX_B.Add_ds;
21863
21864 /* Update for Enabled SubSystem: '<S238>/Calculate_I_term' */
21865 L4__Calculate_I_term_Update(&L4_MABX_B.Calculate_I_term_n,
21866 &L4_MABX_DW.Calculate_I_term_n, &L4_MABX_P.Calculate_I_term_n);
21867
21868 /* End of Update for SubSystem: '<S238>/Calculate_I_term' */
21869 }
21870
21871 /* End of Update for SubSystem: '<S79>/Throttle_controller_gov' */
21872
21873 /* Update for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' incorporates:
21874 * EnablePort: '<S178>/Enable'
21875 */
21876 if (L4_MABX_DW.Determine_shift_interlock_brake) {
21877 /* Update for UnitDelay: '<S178>/Unit_Delay' */
21878 L4_MABX_DW.Unit_Delay_DSTATE_o = L4_MABX_B.If_Then_Else_il.Switch;
21879
21880 /* Update for UnitDelay: '<S188>/Unit_Delay' incorporates:
21881 * Constant: '<S188>/Constant'
21882 */
21883 L4_MABX_DW.Unit_Delay_DSTATE_ae = L4_MABX_P.Constant_Value_ii;
21884
21885 /* Update for UnitDelay: '<S192>/FixPt Unit Delay2' incorporates:
21886 * Constant: '<S192>/FixPt Constant'
21887 */
21888 L4_MABX_DW.FixPtUnitDelay2_DSTATE_la = L4_MABX_P.FixPtConstant_Value_k;
21889
21890 /* Update for UnitDelay: '<S192>/FixPt Unit Delay1' */
21891 L4_MABX_DW.FixPtUnitDelay1_DSTATE_d = L4_MABX_B.If_Then_Else_ep.Switch;
21892
21893 /* Update for UnitDelay: '<S189>/Unit_Delay' */
21894 L4_MABX_DW.Unit_Delay_DSTATE_om = L4_MABX_B.DigitalClock_e;
21895 }
21896
21897 /* End of Update for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
21898
21899 /* Update for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' incorporates:
21900 * EnablePort: '<S177>/Enable'
21901 */
21902 if (L4_MABX_DW.Determine_brake_hold_pressure_t) {
21903 /* Update for UnitDelay: '<S177>/Unit_Delay' */
21904 L4_MABX_DW.Unit_Delay_DSTATE_c = L4_MABX_B.If_Then_Else_gj.Switch;
21905
21906 /* Update for UnitDelay: '<S181>/Unit_Delay' incorporates:
21907 * Constant: '<S181>/Constant'
21908 */
21909 L4_MABX_DW.Unit_Delay_DSTATE_or = L4_MABX_P.Constant_Value_m3;
21910
21911 /* Update for UnitDelay: '<S185>/FixPt Unit Delay2' incorporates:
21912 * Constant: '<S185>/FixPt Constant'
21913 */
21914 L4_MABX_DW.FixPtUnitDelay2_DSTATE_je = L4_MABX_P.FixPtConstant_Value_a;
21915
21916 /* Update for UnitDelay: '<S185>/FixPt Unit Delay1' */
21917 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b = L4_MABX_B.If_Then_Else_nz.Switch;
21918
21919 /* Update for UnitDelay: '<S182>/Unit_Delay' */
21920 L4_MABX_DW.Unit_Delay_DSTATE_oj = L4_MABX_B.DigitalClock_c;
21921 }
21922
21923 /* End of Update for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
21924
21925 /* Update for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' incorporates:
21926 * EnablePort: '<S96>/Enable'
21927 */
21928 if (L4_MABX_DW.Bendix_2C2_brake_application_pr) {
21929 /* Update for UnitDelay: '<S105>/Unit_Delay' */
21930 L4_MABX_DW.Unit_Delay_DSTATE_dc = L4_MABX_B.DigitalClock_j;
21931
21932 /* Update for UnitDelay: '<S109>/Unit_Delay' incorporates:
21933 * Constant: '<S109>/Constant'
21934 */
21935 L4_MABX_DW.Unit_Delay_DSTATE_omj = L4_MABX_P.Constant_Value_l;
21936
21937 /* Update for UnitDelay: '<S129>/Unit_Delay1' incorporates:
21938 * Constant: '<S129>/Constant'
21939 */
21940 L4_MABX_DW.Unit_Delay1_DSTATE_b = L4_MABX_P.Constant_Value_olo;
21941
21942 /* Update for UnitDelay: '<S130>/Unit_Delay' incorporates:
21943 * Constant: '<S130>/Constant'
21944 */
21945 L4_MABX_DW.Unit_Delay_DSTATE_h4 = L4_MABX_P.Constant_Value_hi;
21946
21947 /* Update for UnitDelay: '<S134>/FixPt Unit Delay2' incorporates:
21948 * Constant: '<S134>/FixPt Constant'
21949 */
21950 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm = L4_MABX_P.FixPtConstant_Value_f;
21951
21952 /* Update for UnitDelay: '<S134>/FixPt Unit Delay1' */
21953 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1 = L4_MABX_B.If_Then_Else_bg.Switch;
21954
21955 /* Update for UnitDelay: '<S129>/Unit_Delay2' */
21956 L4_MABX_DW.Unit_Delay2_DSTATE_dy = L4_MABX_B.If_Then_Else_ly.Switch;
21957
21958 /* Update for Enabled SubSystem: '<S106>/Calculate_D_term' */
21959 L4__Calculate_D_term_Update(&L4_MABX_B.Calculate_D_term,
21960 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
21961
21962 /* End of Update for SubSystem: '<S106>/Calculate_D_term' */
21963
21964 /* Update for UnitDelay: '<S104>/Unit_Delay' */
21965 L4_MABX_DW.Unit_Delay_DSTATE_i = L4_MABX_B.Add_e;
21966
21967 /* Update for Enabled SubSystem: '<S106>/Calculate_I_term' */
21968 L4__Calculate_I_term_Update(&L4_MABX_B.Calculate_I_term,
21969 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
21970
21971 /* End of Update for SubSystem: '<S106>/Calculate_I_term' */
21972 }
21973
21974 /* End of Update for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
21975
21976 /* Update for UnitDelay: '<S376>/Unit_Delay' */
21977 L4_MABX_DW.Unit_Delay_DSTATE_cx = L4_MABX_B.LogicalOperator2_f;
21978
21979 /* Update for UnitDelay: '<S377>/Unit_Delay' incorporates:
21980 * Constant: '<S377>/Constant'
21981 */
21982 L4_MABX_DW.Unit_Delay_DSTATE_d0 = L4_MABX_P.Constant_Value_c1;
21983
21984 /* Update for UnitDelay: '<S334>/Unit_Delay' */
21985 L4_MABX_DW.Unit_Delay_DSTATE_e = L4_MABX_B.If_Then_Else_m4.Switch;
21986
21987 /* Update for UnitDelay: '<S381>/FixPt Unit Delay2' incorporates:
21988 * Constant: '<S381>/FixPt Constant'
21989 */
21990 L4_MABX_DW.FixPtUnitDelay2_DSTATE_a = L4_MABX_P.FixPtConstant_Value_jx;
21991
21992 /* Update for UnitDelay: '<S381>/FixPt Unit Delay1' */
21993 L4_MABX_DW.FixPtUnitDelay1_DSTATE_h = L4_MABX_B.If_Then_Else_m4.Switch;
21994
21995 /* Update for UnitDelay: '<S378>/Unit_Delay' */
21996 L4_MABX_DW.Unit_Delay_DSTATE_m = L4_MABX_B.DigitalClock;
21997
21998 /* Update for UnitDelay: '<S365>/Unit_Delay' */
21999 L4_MABX_DW.Unit_Delay_DSTATE_iy = L4_MABX_B.LogicalOperator1_g;
22000
22001 /* Update for UnitDelay: '<S366>/Unit_Delay' incorporates:
22002 * Constant: '<S366>/Constant'
22003 */
22004 L4_MABX_DW.Unit_Delay_DSTATE_mv = L4_MABX_P.Constant_Value_am;
22005
22006 /* Update for UnitDelay: '<S332>/Unit_Delay' */
22007 L4_MABX_DW.Unit_Delay_DSTATE_g = L4_MABX_B.If_Then_Else_bf.Switch;
22008
22009 /* Update for UnitDelay: '<S370>/FixPt Unit Delay2' incorporates:
22010 * Constant: '<S370>/FixPt Constant'
22011 */
22012 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ip = L4_MABX_P.FixPtConstant_Value_d;
22013
22014 /* Update for UnitDelay: '<S370>/FixPt Unit Delay1' */
22015 L4_MABX_DW.FixPtUnitDelay1_DSTATE_hq = L4_MABX_B.If_Then_Else_bf.Switch;
22016
22017 /* Update for UnitDelay: '<S367>/Unit_Delay' */
22018 L4_MABX_DW.Unit_Delay_DSTATE_b = L4_MABX_B.DigitalClock_b;
22019
22020 /* Update for UnitDelay: '<S329>/Delay Input1' */
22021 L4_MABX_DW.DelayInput1_DSTATE[0] = L4_MABX_B.Distance_to_achieve_speed_targe;
22022 L4_MABX_DW.DelayInput1_DSTATE[1] = L4_MABX_B.Vehicle_speed_target_o;
22023
22024 /* Update for UnitDelay: '<S347>/Unit_Delay' */
22025 L4_MABX_DW.Unit_Delay_DSTATE_bw = L4_MABX_B.If_Then_Else_og.Switch;
22026
22027 /* Update for UnitDelay: '<S349>/Unit_Delay' */
22028 L4_MABX_DW.Unit_Delay_DSTATE_ko = L4_MABX_B.LogicalOperator1_p;
22029
22030 /* Update for UnitDelay: '<S358>/FixPt Unit Delay2' incorporates:
22031 * Constant: '<S358>/FixPt Constant'
22032 */
22033 L4_MABX_DW.FixPtUnitDelay2_DSTATE_fh = L4_MABX_P.FixPtConstant_Value_gy;
22034
22035 /* Update for UnitDelay: '<S358>/FixPt Unit Delay1' */
22036 L4_MABX_DW.FixPtUnitDelay1_DSTATE_li = L4_MABX_B.Xnew;
22037
22038 /* Update for UnitDelay: '<S356>/Unit_Delay' */
22039 L4_MABX_DW.Unit_Delay_DSTATE_ps = L4_MABX_B.DigitalClock_f;
22040
22041 /* Update for UnitDelay: '<S336>/Delay Input1' */
22042 L4_MABX_DW.DelayInput1_DSTATE_f[0] = L4_MABX_B.Distance_to_achieve_speed_targe;
22043 L4_MABX_DW.DelayInput1_DSTATE_f[1] = L4_MABX_B.Vehicle_speed_target_o;
22044
22045 /* Update for UnitDelay: '<S338>/Unit_Delay' incorporates:
22046 * Constant: '<S338>/Constant'
22047 */
22048 L4_MABX_DW.Unit_Delay_DSTATE_la = L4_MABX_P.Constant_Value_pu;
22049
22050 /* Update for UnitDelay: '<S342>/FixPt Unit Delay2' incorporates:
22051 * Constant: '<S342>/FixPt Constant'
22052 */
22053 L4_MABX_DW.FixPtUnitDelay2_DSTATE_c = L4_MABX_P.FixPtConstant_Value_az;
22054
22055 /* Update for UnitDelay: '<S342>/FixPt Unit Delay1' */
22056 L4_MABX_DW.FixPtUnitDelay1_DSTATE_e = L4_MABX_B.If_Then_Else_pz.Switch;
22057
22058 /* Update for UnitDelay: '<S337>/Unit_Delay' */
22059 L4_MABX_DW.Unit_Delay_1_DSTATE_j =
22060 L4_MABX_B.If_Then_Else_mm.Vehicle_speed_target;
22061 L4_MABX_DW.Unit_Delay_2_DSTATE_e = L4_MABX_B.If_Then_Else_mm.Vehicle_speed;
22062 L4_MABX_DW.Unit_Delay_3_DSTATE_j = L4_MABX_B.If_Then_Else_mm.Distance_m;
22063
22064 /* Update for UnitDelay: '<S335>/Unit_Delay' */
22065 L4_MABX_DW.Unit_Delay_DSTATE_f = L4_MABX_B.DigitalClock_p;
22066
22067 /* Update for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' incorporates:
22068 * EnablePort: '<S97>/Enable'
22069 */
22070 if (L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba) {
22071 /* Update for UnitDelay: '<S140>/Unit_Delay' */
22072 L4_MABX_DW.Unit_Delay_DSTATE_eu = L4_MABX_B.DigitalClock_n;
22073
22074 /* Update for UnitDelay: '<S147>/Unit_Delay' incorporates:
22075 * Constant: '<S147>/Constant'
22076 */
22077 L4_MABX_DW.Unit_Delay_DSTATE_nw = L4_MABX_P.Constant_Value_j5;
22078
22079 /* Update for UnitDelay: '<S167>/Unit_Delay1' incorporates:
22080 * Constant: '<S167>/Constant'
22081 */
22082 L4_MABX_DW.Unit_Delay1_DSTATE_f = L4_MABX_P.Constant_Value_bd;
22083
22084 /* Update for UnitDelay: '<S168>/Unit_Delay' incorporates:
22085 * Constant: '<S168>/Constant'
22086 */
22087 L4_MABX_DW.Unit_Delay_DSTATE_g4 = L4_MABX_P.Constant_Value_m2w;
22088
22089 /* Update for UnitDelay: '<S172>/FixPt Unit Delay2' incorporates:
22090 * Constant: '<S172>/FixPt Constant'
22091 */
22092 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o4 = L4_MABX_P.FixPtConstant_Value_j1;
22093
22094 /* Update for UnitDelay: '<S172>/FixPt Unit Delay1' */
22095 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2 = L4_MABX_B.If_Then_Else_iy.Switch;
22096
22097 /* Update for UnitDelay: '<S167>/Unit_Delay2' */
22098 L4_MABX_DW.Unit_Delay2_DSTATE_c = L4_MABX_B.If_Then_Else_bc.Switch;
22099
22100 /* Update for Enabled SubSystem: '<S144>/Calculate_D_term' */
22101 L4__Calculate_D_term_Update(&L4_MABX_B.Calculate_D_term_p,
22102 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
22103
22104 /* End of Update for SubSystem: '<S144>/Calculate_D_term' */
22105
22106 /* Update for UnitDelay: '<S139>/Unit_Delay' */
22107 L4_MABX_DW.Unit_Delay_DSTATE_h = L4_MABX_B.Add_mh;
22108
22109 /* Update for Enabled SubSystem: '<S144>/Calculate_I_term' */
22110 L4__Calculate_I_term_Update(&L4_MABX_B.Calculate_I_term_e,
22111 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
22112
22113 /* End of Update for SubSystem: '<S144>/Calculate_I_term' */
22114 }
22115
22116 /* End of Update for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
22117
22118 /* Update for UnitDelay: '<S101>/Unit_Delay' incorporates:
22119 * Constant: '<S101>/Constant7'
22120 */
22121 L4_MABX_DW.Unit_Delay_DSTATE_eu4 = L4_MABX_P.Constant7_Value_j;
22122
22123 /* Update for UnitDelay: '<S197>/Unit_Delay1' incorporates:
22124 * Constant: '<S197>/Constant'
22125 */
22126 L4_MABX_DW.Unit_Delay1_DSTATE_d = L4_MABX_P.Constant_Value_jf;
22127
22128 /* Update for UnitDelay: '<S197>/Unit_Delay2' */
22129 L4_MABX_DW.Unit_Delay2_DSTATE_e = L4_MABX_B.If_Then_Else_ga.Switch;
22130
22131 /* Update for UnitDelay: '<S196>/UD' */
22132 L4_MABX_DW.UD_DSTATE = L4_MABX_B.TSamp;
22133
22134 /* Update for UnitDelay: '<S314>/Unit_Delay1' incorporates:
22135 * Constant: '<S314>/Constant'
22136 */
22137 L4_MABX_DW.Unit_Delay1_DSTATE_db = L4_MABX_P.Constant_Value_hx;
22138
22139 /* Update for UnitDelay: '<S314>/Unit_Delay2' */
22140 L4_MABX_DW.Unit_Delay2_DSTATE_d = L4_MABX_B.If_Then_Else_b.Switch;
22141
22142 /* Update for UnitDelay: '<S313>/Delay Input1' */
22143 L4_MABX_DW.DelayInput1_DSTATE_f0 = L4_MABX_B.JumpNearEdge;
22144
22145 /* Update for UnitDelay: '<S315>/Unit_Delay1' incorporates:
22146 * Constant: '<S315>/Constant'
22147 */
22148 L4_MABX_DW.Unit_Delay1_DSTATE_a = L4_MABX_P.Constant_Value_bh;
22149
22150 /* Update for UnitDelay: '<S315>/Unit_Delay2' */
22151 L4_MABX_DW.Unit_Delay2_DSTATE_im = L4_MABX_B.If_Then_Else_mk.Switch;
22152
22153 /* Update for UnitDelay: '<S316>/Unit_Delay1' incorporates:
22154 * Constant: '<S316>/Constant'
22155 */
22156 L4_MABX_DW.Unit_Delay1_DSTATE_p = L4_MABX_P.Constant_Value_hxo;
22157
22158 /* Update for UnitDelay: '<S316>/Unit_Delay2' */
22159 L4_MABX_DW.Unit_Delay2_DSTATE_p = L4_MABX_B.If_Then_Else_lh.Switch;
22160
22161 /* Update for Enabled SubSystem: '<S276>/Slew_at_event' incorporates:
22162 * EnablePort: '<S321>/Enable'
22163 */
22164 if (L4_MABX_DW.Slew_at_event_MODE_d) {
22165 /* Update for UnitDelay: '<S323>/Unit_Delay' */
22166 L4_MABX_DW.Unit_Delay_DSTATE_bd = L4_MABX_B.DataTypeConversion_l1;
22167
22168 /* Update for UnitDelay: '<S324>/Unit_Delay' incorporates:
22169 * Constant: '<S324>/Constant'
22170 */
22171 L4_MABX_DW.Unit_Delay_DSTATE_jt = L4_MABX_P.Constant_Value_hg;
22172
22173 /* Update for UnitDelay: '<S327>/FixPt Unit Delay2' incorporates:
22174 * Constant: '<S327>/FixPt Constant'
22175 */
22176 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ji = L4_MABX_P.FixPtConstant_Value_n;
22177
22178 /* Update for UnitDelay: '<S327>/FixPt Unit Delay1' */
22179 L4_MABX_DW.FixPtUnitDelay1_DSTATE_o = L4_MABX_B.If_Then_Else_n3.Switch;
22180
22181 /* Update for UnitDelay: '<S322>/Unit_Delay' */
22182 L4_MABX_DW.Unit_Delay_DSTATE_ll = L4_MABX_B.LogicalOperator_dm;
22183 }
22184
22185 /* End of Update for SubSystem: '<S276>/Slew_at_event' */
22186
22187 /* Update for UnitDelay: '<S278>/Unit Delay' */
22188 L4_MABX_DW.UnitDelay_DSTATE_d = L4_MABX_B.Switch1_fi;
22189
22190 /* Update for UnitDelay: '<S288>/Unit Delay' */
22191 L4_MABX_DW.UnitDelay_DSTATE_m = L4_MABX_B.Add1_m;
22192
22193 /* Update for UnitDelay: '<S289>/Unit Delay' */
22194 L4_MABX_DW.UnitDelay_DSTATE_m0 = L4_MABX_B.Switch_k;
22195
22196 /* Update for UnitDelay: '<S289>/Unit Delay1' */
22197 L4_MABX_DW.UnitDelay1_DSTATE_k = L4_MABX_B.Divide1_b;
22198
22199 /* Update for UnitDelay: '<S283>/Unit Delay' */
22200 L4_MABX_DW.UnitDelay_DSTATE_m1 = L4_MABX_B.Switch1_pb;
22201
22202 /* Update for DiscreteTransferFcn: '<S274>/Error 5Hz LPF' */
22203 denAccum = L4_MABX_B.error;
22204 denAccum -= L4_MABX_P.Error5HzLPF_DenCoef[1] * L4_MABX_DW.Error5HzLPF_states[0];
22205 denAccum -= L4_MABX_P.Error5HzLPF_DenCoef[2] * L4_MABX_DW.Error5HzLPF_states[1];
22206 denAccum -= L4_MABX_P.Error5HzLPF_DenCoef[3] * L4_MABX_DW.Error5HzLPF_states[2];
22207 denAccum /= L4_MABX_P.Error5HzLPF_DenCoef[0];
22208 L4_MABX_DW.Error5HzLPF_states[2] = L4_MABX_DW.Error5HzLPF_states[1];
22209 L4_MABX_DW.Error5HzLPF_states[1] = L4_MABX_DW.Error5HzLPF_states[0];
22210 L4_MABX_DW.Error5HzLPF_states[0] = denAccum;
22211
22212 /* Update for DiscreteIntegrator: '<S298>/Integrator' */
22213 L4_MABX_DW.Integrator_DSTATE += L4_MABX_P.Integrator_gainval *
22214 L4_MABX_B.IntegralGain;
22215 L4_MABX_DW.Integrator_PrevResetState = (int8_T)AutonomousEnabled;
22216
22217 /* Update for DiscreteIntegrator: '<S298>/Filter' */
22218 L4_MABX_DW.Filter_DSTATE += L4_MABX_P.Filter_gainval *
22219 L4_MABX_B.FilterCoefficient;
22220 L4_MABX_DW.Filter_PrevResetState = (int8_T)AutonomousEnabled;
22221
22222 /* Update for UnitDelay: '<S300>/Delay Input' */
22223 L4_MABX_DW.DelayInput_DSTATE = L4_MABX_B.Saturate;
22224
22225 /* Update for UnitDelay: '<S300>/Delay Output' */
22226 L4_MABX_DW.DelayOutput_DSTATE = L4_MABX_B.Downcast;
22227
22228 /* Update for DiscreteTransferFcn: '<S274>/5Hz LPF' */
22229 denAccum = L4_MABX_B.Sum2;
22230 denAccum -= L4_MABX_P.uHzLPF_DenCoef[1] * L4_MABX_DW.uHzLPF_states[0];
22231 denAccum -= L4_MABX_P.uHzLPF_DenCoef[2] * L4_MABX_DW.uHzLPF_states[1];
22232 denAccum -= L4_MABX_P.uHzLPF_DenCoef[3] * L4_MABX_DW.uHzLPF_states[2];
22233 denAccum /= L4_MABX_P.uHzLPF_DenCoef[0];
22234 L4_MABX_DW.uHzLPF_states[2] = L4_MABX_DW.uHzLPF_states[1];
22235 L4_MABX_DW.uHzLPF_states[1] = L4_MABX_DW.uHzLPF_states[0];
22236 L4_MABX_DW.uHzLPF_states[0] = denAccum;
22237
22238 /* Update for DiscreteIntegrator: '<S292>/Discrete-Time Integrator' */
22239 L4_MABX_DW.DiscreteTimeIntegrator_IC_LOADI = 0U;
22240 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE +=
22241 L4_MABX_P.DiscreteTimeIntegrator_gainval * L4_MABX_B.Gain_o;
22242 L4_MABX_DW.DiscreteTimeIntegrator_PrevRese = (int8_T)AutonomousEnabled;
22243
22244 /* Update for UnitDelay: '<S308>/Delay Input2' */
22245 L4_MABX_DW.DelayInput2_DSTATE = L4_MABX_B.DifferenceInputs2;
22246
22247 /* Update for DiscreteIntegrator: '<S80>/Discrete-Time Integrator' incorporates:
22248 * Constant: '<S80>/ResetIntegrator'
22249 */
22250 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e +=
22251 L4_MABX_P.DiscreteTimeIntegrator_gainva_l * L4_MABX_B.Switch1_p;
22252 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e >=
22253 L4_MABX_P.DiscreteTimeIntegrator_UpperSat) {
22254 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
22255 L4_MABX_P.DiscreteTimeIntegrator_UpperSat;
22256 } else {
22257 if (L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e <=
22258 L4_MABX_P.DiscreteTimeIntegrator_LowerSat) {
22259 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
22260 L4_MABX_P.DiscreteTimeIntegrator_LowerSat;
22261 }
22262 }
22263
22264 if (L4_MABX_P.ResetIntegrator_Value > 0.0) {
22265 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 1;
22266 } else if (L4_MABX_P.ResetIntegrator_Value < 0.0) {
22267 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = -1;
22268 } else if (L4_MABX_P.ResetIntegrator_Value == 0.0) {
22269 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 0;
22270 } else {
22271 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 2;
22272 }
22273
22274 /* End of Update for DiscreteIntegrator: '<S80>/Discrete-Time Integrator' */
22275
22276 /* Update for UnitDelay: '<S80>/Unit Delay' */
22277 L4_MABX_DW.UnitDelay_DSTATE_e = L4_MABX_B.Switch2_i1;
22278
22279 /* Update for UnitDelay: '<S360>/FixPt Unit Delay2' incorporates:
22280 * Constant: '<S360>/FixPt Constant'
22281 */
22282 L4_MABX_DW.FixPtUnitDelay2_DSTATE_aw = L4_MABX_P.FixPtConstant_Value_p2;
22283
22284 /* Update for UnitDelay: '<S360>/FixPt Unit Delay1' */
22285 L4_MABX_DW.FixPtUnitDelay1_DSTATE_p = L4_MABX_B.Xnew_h;
22286
22287 /* Update for UnitDelay: '<S361>/FixPt Unit Delay2' incorporates:
22288 * Constant: '<S361>/FixPt Constant'
22289 */
22290 L4_MABX_DW.FixPtUnitDelay2_DSTATE_g = L4_MABX_P.FixPtConstant_Value_el;
22291
22292 /* Update for UnitDelay: '<S361>/FixPt Unit Delay1' */
22293 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g = L4_MABX_B.Xnew_f;
22294
22295 /* Update for UnitDelay: '<S355>/Unit_Delay' */
22296 L4_MABX_DW.Unit_Delay_DSTATE_j = L4_MABX_B.DigitalClock_d;
22297
22298 /* End of Update for SubSystem: '<S65>/Task_10ms' */
22299
22300 /* Update for Atomic SubSystem: '<S815>/CAN_TX_10ms' */
22301
22302 /* Update for UnitDelay: '<S972>/Unit_Delay' */
22303 L4_MABX_DW.Unit_Delay_DSTATE_ia = L4_MABX_B.Operator_pi;
22304
22305 /* Update for UnitDelay: '<S973>/Unit Delay' */
22306 L4_MABX_DW.UnitDelay_DSTATE_a = L4_MABX_B.Switch1_l;
22307
22308 /* End of Update for SubSystem: '<S815>/CAN_TX_10ms' */
22309
22310 /* Update for UnitDelay: '<S825>/Unit Delay2' */
22311 L4_MABX_DW.UnitDelay2_DSTATE = L4_MABX_B.enTPCM;
22312
22313 /* Update for UnitDelay: '<S825>/Unit Delay1' */
22314 L4_MABX_DW.UnitDelay1_DSTATE_o = L4_MABX_B.TPDT_count;
22315
22316 /* Update for UnitDelay: '<S825>/Unit Delay3' */
22317 L4_MABX_DW.UnitDelay3_DSTATE = L4_MABX_B.enTPDT;
22318
22319 /* Update for UnitDelay: '<S3>/Unit_Delay' incorporates:
22320 * Constant: '<S202>/Constant'
22321 * Constant: '<S80>/zero'
22322 */
22323 L4_MABX_DW.Unit_Delay_1_DSTATE = DesiredSteeringAngle;
22324 L4_MABX_DW.Unit_Delay_10_DSTATE = L4_MABX_B.Add1_h;
22325 L4_MABX_DW.Unit_Delay_100_DSTATE = L4_MABX_B.SPN1760_GrossCombinationVehicle;
22326 L4_MABX_DW.Unit_Delay_101_DSTATE = L4_MABX_B.ACCDistanceAlertSignal;
22327 L4_MABX_DW.Unit_Delay_102_DSTATE = L4_MABX_B.ForwardCollisionWarning;
22328 L4_MABX_DW.Unit_Delay_103_DSTATE = L4_MABX_B.SPN544_EngineReferenceTorque;
22329 L4_MABX_DW.Unit_Delay_104_DSTATE = L4_MABX_B.SFunction1_o4_gk;
22330 L4_MABX_DW.Unit_Delay_105_DSTATE = L4_MABX_B.SFunction1_o5_a;
22331 L4_MABX_DW.Unit_Delay_106_DSTATE = L4_MABX_B.SFunction1_o6_g;
22332 L4_MABX_DW.Unit_Delay_107_DSTATE = L4_MABX_B.SFunction1_o7_g;
22333 L4_MABX_DW.Unit_Delay_108_DSTATE = SteerWheelAngle;
22334 L4_MABX_DW.Unit_Delay_109_DSTATE = YawRate;
22335 L4_MABX_DW.Unit_Delay_11_DSTATE = L4_MABX_B.Switch2_i1;
22336 L4_MABX_DW.Unit_Delay_110_DSTATE = SPN1810_LongitudinalAcceleration;
22337 L4_MABX_DW.Unit_Delay_111_DSTATE = L4_MABX_B.SFunction1_o2_pd;
22338 L4_MABX_DW.Unit_Delay_112_DSTATE = L4_MABX_B.SFunction1_o3_ig;
22339 L4_MABX_DW.Unit_Delay_113_DSTATE = L4_MABX_B.SFunction1_o5_m;
22340 L4_MABX_DW.Unit_Delay_114_DSTATE = L4_MABX_B.SFunction1_o1_n;
22341 L4_MABX_DW.Unit_Delay_115_DSTATE = L4_MABX_B.SFunction1_o3_fv;
22342 L4_MABX_DW.Unit_Delay_116_DSTATE = L4_MABX_B.LogicalOperator1_k;
22343 L4_MABX_DW.Unit_Delay_117_DSTATE = L4_MABX_B.LogicalOperator1_l;
22344 L4_MABX_DW.Unit_Delay_118_DSTATE = L4_MABX_B.PitchAngleExRange;
22345 L4_MABX_DW.Unit_Delay_119_DSTATE = L4_MABX_B.SFunction1_o3_kw;
22346 L4_MABX_DW.Unit_Delay_12_DSTATE = L4_MABX_B.DiscreteTimeIntegrator_h;
22347 L4_MABX_DW.Unit_Delay_120_DSTATE = L4_MABX_B.SFunction1_o1_ai;
22348 L4_MABX_DW.Unit_Delay_121_DSTATE = L4_MABX_B.SFunction1_o2_dt;
22349 L4_MABX_DW.Unit_Delay_122_DSTATE = L4_MABX_B.Latitude_;
22350 L4_MABX_DW.Unit_Delay_123_DSTATE = L4_MABX_B.Longitude_;
22351 L4_MABX_DW.Unit_Delay_124_DSTATE = L4_MABX_B.HDOP_;
22352 L4_MABX_DW.Unit_Delay_125_DSTATE = L4_MABX_B.XPRControlMode;
22353 L4_MABX_DW.Unit_Delay_126_DSTATE = L4_MABX_B.XPRErrorState;
22354 L4_MABX_DW.Unit_Delay_127_DSTATE = L4_MABX_B.PressureP1;
22355 L4_MABX_DW.Unit_Delay_128_DSTATE = L4_MABX_B.PressureP4;
22356 L4_MABX_DW.Unit_Delay_129_DSTATE = L4_MABX_B.PressureP21;
22357 L4_MABX_DW.Unit_Delay_13_DSTATE = L4_MABX_B.numLanePoints_j;
22358 L4_MABX_DW.Unit_Delay_130_DSTATE = L4_MABX_B.PressureP22;
22359 L4_MABX_DW.Unit_Delay_131_DSTATE = L4_MABX_B.PressureP42;
22360 L4_MABX_DW.Unit_Delay_132_DSTATE = ReAX_ActualHandwheelPos;
22361 L4_MABX_DW.Unit_Delay_133_DSTATE = ReAX_EchoedSteerWheelPos;
22362 L4_MABX_DW.Unit_Delay_134_DSTATE = RTMapsOk;
22363 L4_MABX_DW.Unit_Delay_135_DSTATE = SupervisorMode;
22364 L4_MABX_DW.Unit_Delay_136_DSTATE = CurrentAzimuth_rad;
22365 L4_MABX_DW.Unit_Delay_137_DSTATE = TargetAzimuth_rad;
22366 L4_MABX_DW.Unit_Delay_138_DSTATE = CurrentVelocity_kph;
22367 L4_MABX_DW.Unit_Delay_139_DSTATE = TargetVelocity_kph;
22368 L4_MABX_DW.Unit_Delay_14_DSTATE = L4_MABX_B.correctedError;
22369 L4_MABX_DW.Unit_Delay_140_DSTATE = Curvature;
22370 L4_MABX_DW.Unit_Delay_141_DSTATE = CrosstrackError;
22371 L4_MABX_DW.Unit_Delay_15_DSTATE = L4_MABX_B.Switch1_j;
22372 L4_MABX_DW.Unit_Delay_16_DSTATE = L4_MABX_B.rad2deg1;
22373 L4_MABX_DW.Unit_Delay_17_DSTATE = L4_MABX_B.If_Then_Else_iz.Switch;
22374 L4_MABX_DW.Unit_Delay_18_DSTATE = L4_MABX_B.APTC_arb_pedal_low_idl_sw_o;
22375 L4_MABX_DW.Unit_Delay_19_DSTATE = L4_MABX_B.If_Then_Else_fh.Switch;
22376 L4_MABX_DW.Unit_Delay_2_DSTATE = L4_MABX_B.Add3;
22377 L4_MABX_DW.Unit_Delay_20_DSTATE = L4_MABX_P.Constant_Value_jg4;
22378 L4_MABX_DW.Unit_Delay_21_DSTATE = L4_MABX_B.If_Then_Else_pi.Switch;
22379 L4_MABX_DW.Unit_Delay_22_DSTATE = L4_MABX_B.Add_ds;
22380 L4_MABX_DW.Unit_Delay_23_DSTATE = L4_MABX_B.If_Then_Else_k2.Switch;
22381 L4_MABX_DW.Unit_Delay_24_DSTATE = L4_MABX_B.Product_i;
22382 L4_MABX_DW.Unit_Delay_25_DSTATE = L4_MABX_B.PID_i_term_c;
22383 L4_MABX_DW.Unit_Delay_26_DSTATE = L4_MABX_B.PID_d_term_c;
22384 L4_MABX_DW.Unit_Delay_27_DSTATE = L4_MABX_B.PID_hold_i_term_f_b;
22385 L4_MABX_DW.Unit_Delay_28_DSTATE = L4_MABX_B.ThrottlePID_Y_m;
22386 L4_MABX_DW.Unit_Delay_29_DSTATE = L4_MABX_B.MinMax1_n;
22387 L4_MABX_DW.Unit_Delay_3_DSTATE = L4_MABX_B.Add_px;
22388 L4_MABX_DW.Unit_Delay_30_DSTATE = L4_MABX_B.F_Ignition_relay_command_i;
22389 L4_MABX_DW.Unit_Delay_31_DSTATE = L4_MABX_B.F_Inverter_relay_command_p;
22390 L4_MABX_DW.Unit_Delay_32_DSTATE = L4_MABX_B.F_MABX_relay_command_n;
22391 L4_MABX_DW.Unit_Delay_33_DSTATE = L4_MABX_B.F_Sensor_relay_command_k;
22392 L4_MABX_DW.Unit_Delay_34_DSTATE = L4_MABX_B.BrkPedArbBrakeSwitch_c;
22393 L4_MABX_DW.Unit_Delay_35_DSTATE = L4_MABX_B.Diff;
22394 L4_MABX_DW.Unit_Delay_36_DSTATE = L4_MABX_B.F_Brake_control_active;
22395 L4_MABX_DW.Unit_Delay_37_DSTATE = L4_MABX_B.F_Hold_brakes_at_zero_d;
22396 L4_MABX_DW.Unit_Delay_38_DSTATE = L4_MABX_B.BrakingPID_Y_k;
22397 L4_MABX_DW.Unit_Delay_39_DSTATE = 0.0;
22398 L4_MABX_DW.Unit_Delay_4_DSTATE = L4_MABX_B.Product_d;
22399 L4_MABX_DW.Unit_Delay_40_DSTATE = L4_MABX_B.VSPD_TARGET_KPH_APV_g;
22400 L4_MABX_DW.Unit_Delay_41_DSTATE = L4_MABX_B.Vehicle_speed_target_n;
22401 L4_MABX_DW.Unit_Delay_42_DSTATE = L4_MABX_B.VSPD_HYST_KPH_APV_f;
22402 L4_MABX_DW.Unit_Delay_43_DSTATE = L4_MABX_B.VSPD_BRAKE_STOP_THRESH_KPH_AP_b;
22403 L4_MABX_DW.Unit_Delay_44_DSTATE = L4_MABX_B.ACCEL_LIM_MS2_APV_b;
22404 L4_MABX_DW.Unit_Delay_46_DSTATE = AutonomousOutputEnabled;
22405 L4_MABX_DW.Unit_Delay_5_DSTATE = L4_MABX_B.Switch2_i;
22406 L4_MABX_DW.Unit_Delay_6_DSTATE = L4_MABX_B.Conversion;
22407 L4_MABX_DW.Unit_Delay_7_DSTATE = L4_MABX_B.Add2;
22408 L4_MABX_DW.Unit_Delay_8_DSTATE = L4_MABX_P.zero_Value;
22409 L4_MABX_DW.Unit_Delay_82_DSTATE = Pedal_pwm_position;
22410 L4_MABX_DW.Unit_Delay_83_DSTATE = L4_MABX_B.IgnitionKeySwitch_voltage;
22411 L4_MABX_DW.Unit_Delay_84_DSTATE = L4_MABX_B.SFunction1_o8_g5;
22412 L4_MABX_DW.Unit_Delay_85_DSTATE = L4_MABX_B.SFunction1_o2_om;
22413 L4_MABX_DW.Unit_Delay_86_DSTATE = L4_MABX_B.SFunction1_o7_fa;
22414 L4_MABX_DW.Unit_Delay_87_DSTATE = L4_MABX_B.SFunction1_o1_in;
22415 L4_MABX_DW.Unit_Delay_88_DSTATE = L4_MABX_B.SFunction1_o1_bn;
22416 L4_MABX_DW.Unit_Delay_89_DSTATE = L4_MABX_B.SFunction1_o2_nn;
22417 L4_MABX_DW.Unit_Delay_9_DSTATE = L4_MABX_B.Add1_h;
22418 L4_MABX_DW.Unit_Delay_90_DSTATE = L4_MABX_B.SFunction1_o4_o;
22419 L4_MABX_DW.Unit_Delay_91_DSTATE = L4_MABX_B.SPN524_TransSelectedGear;
22420 L4_MABX_DW.Unit_Delay_92_DSTATE = L4_MABX_B.SPN523_TransCurrentGear;
22421 L4_MABX_DW.Unit_Delay_93_DSTATE = L4_MABX_B.SPN526_TransActualGearRatio;
22422 L4_MABX_DW.Unit_Delay_94_DSTATE = L4_MABX_B.SFunction1_o4_k2;
22423 L4_MABX_DW.Unit_Delay_95_DSTATE = L4_MABX_B.SFunction1_o2_b0;
22424 L4_MABX_DW.Unit_Delay_96_DSTATE = L4_MABX_B.SFunction1_o5_f1;
22425 L4_MABX_DW.Unit_Delay_97_DSTATE = L4_MABX_B.SFunction1_o3_an;
22426 L4_MABX_DW.Unit_Delay_98_DSTATE = L4_MABX_B.SPN514_NominalFrictionPercentTo;
22427 L4_MABX_DW.Unit_Delay_99_DSTATE = L4_MABX_B.SPN2978_EstEngParasiticLossesPe;
22428
22429 /* Update for UnitDelay: '<S635>/Unit_Delay2' */
22430 L4_MABX_DW.Unit_Delay2_DSTATE_o = L4_MABX_B.LogicalOperator2_g;
22431
22432 /* Update for UnitDelay: '<S635>/Unit_Delay1' incorporates:
22433 * Constant: '<S635>/Constant1'
22434 */
22435 L4_MABX_DW.Unit_Delay1_DSTATE_hq = L4_MABX_P.Constant1_Value_pc;
22436
22437 /* Update for UnitDelay: '<S642>/Unit_Delay' */
22438 L4_MABX_DW.Unit_Delay_DSTATE_n = L4_MABX_B.LogicalOperator1_l;
22439
22440 /* Update for UnitDelay: '<S10>/Unit_Delay' incorporates:
22441 * Constant: '<S10>/Constant'
22442 */
22443 L4_MABX_DW.Unit_Delay_DSTATE_do = L4_MABX_P.Constant_Value_g5;
22444
22445 /* Update absolute time */
22446 /* The "clockTick0" counts the number of times the code of this task has
22447 * been executed. The absolute time is the multiplication of "clockTick0"
22448 * and "Timing.stepSize0". Size of "clockTick0" ensures timer will not
22449 * overflow during the application lifespan selected.
22450 * Timer of this task consists of two 32 bit unsigned integers.
22451 * The two integers represent the low bits Timing.clockTick0 and the high bits
22452 * Timing.clockTickH0. When the low bit overflows to 0, the high bits increment.
22453 */
22454 if (!(++L4_MABX_M->Timing.clockTick0)) {
22455 ++L4_MABX_M->Timing.clockTickH0;
22456 }
22457
22458 L4_MABX_M->Timing.t[0] = L4_MABX_M->Timing.clockTick0 *
22459 L4_MABX_M->Timing.stepSize0 + L4_MABX_M->Timing.clockTickH0 *
22460 L4_MABX_M->Timing.stepSize0 * 4294967296.0;
22461}
22462
22463/* Model output function for TID1 */
22464void L4_MABX_output1(void) /* Sample time: [0.02s, 0.0s] */
22465{
22466 int_T tid = 1;
22467 int32_T i;
22468 uint32_T q0;
22469 uint32_T qY;
22470 uint8_T tmp;
22471 real_T u0;
22472 real_T u1;
22473 real_T u2;
22474
22475 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_20ms' */
22476
22477 /* Switch: '<S981>/Switch1' incorporates:
22478 * Constant: '<S981>/Constant4'
22479 */
22480 if (L4_MABX_B.AutonomousOutputEnabled_g) {
22481 /* Product: '<S981>/Divide1' incorporates:
22482 * Constant: '<S981>/Constant2'
22483 */
22484 L4_MABX_B.XBRExternalAccelDemand_c = L4_MABX_B.BrakingPID_Y_j *
22485 L4_MABX_P.Constant2_Value_mv;
22486 L4_MABX_B.XBRExternalAccelDemand = L4_MABX_B.XBRExternalAccelDemand_c;
22487 } else {
22488 L4_MABX_B.XBRExternalAccelDemand = L4_MABX_P.Constant4_Value_g;
22489 }
22490
22491 /* End of Switch: '<S981>/Switch1' */
22492
22493 /* MultiPortSwitch: '<S981>/Multiport Switch' incorporates:
22494 * Constant: '<S981>/Constant10'
22495 * Constant: '<S981>/Constant7'
22496 * Constant: '<S981>/Constant8'
22497 * Constant: '<S981>/Constant9'
22498 */
22499 switch ((int32_T)L4_MABX_B.BrakingControlActive_e) {
22500 case 0:
22501 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant10_Value_g;
22502 break;
22503
22504 case 1:
22505 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant7_Value_l;
22506 break;
22507
22508 case 2:
22509 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant8_Value_g;
22510 break;
22511
22512 default:
22513 L4_MABX_B.XBRPassThroughActive = L4_MABX_P.Constant9_Value_h;
22514 break;
22515 }
22516
22517 /* End of MultiPortSwitch: '<S981>/Multiport Switch' */
22518
22519 /* Outputs for Atomic SubSystem: '<S981>/If_Then_Else' */
22520
22521 /* Constant: '<S981>/XBRValueOverride' incorporates:
22522 * Constant: '<S981>/XBRControlMode'
22523 * Constant: '<S981>/XBRControlModeOVR'
22524 * Constant: '<S981>/XBREnduranceBrakeIntegrationMode'
22525 * Constant: '<S981>/XBREnduranceBrakeIntegrationModeOVR'
22526 * Constant: '<S981>/XBRExternalAccelDemandOVR'
22527 * Constant: '<S981>/XBRPassThroughActiveOVR'
22528 * Constant: '<S981>/XBRPassThroughEnabled'
22529 * Constant: '<S981>/XBRPassThroughEnabledOVR'
22530 * Constant: '<S981>/XBRPriority'
22531 * Constant: '<S981>/XBRPriorityOVR'
22532 * Constant: '<S981>/XBRUrgency'
22533 * Constant: '<S981>/XBRUrgencyOVR'
22534 */
22535 L4_MABX_If_Then_Else_mo(L4_MABX_P.XBRValueOverride_Value,
22536 L4_MABX_P.XBRExternalAccelDemandOVR_Value,
22537 L4_MABX_P.XBREnduranceBrakeIntegrationMod, L4_MABX_P.XBRPriorityOVR_Value,
22538 L4_MABX_P.XBRControlModeOVR_Value, L4_MABX_P.XBRPassThroughActiveOVR_Value,
22539 L4_MABX_P.XBRUrgencyOVR_Value, L4_MABX_P.XBRPassThroughEnabledOVR_Value,
22540 L4_MABX_B.XBRExternalAccelDemand, L4_MABX_P.XBREnduranceBrakeIntegrationM_e,
22541 L4_MABX_P.XBRPriority_Value, L4_MABX_P.XBRControlMode_Value,
22542 L4_MABX_B.XBRPassThroughActive, L4_MABX_P.XBRUrgency_Value,
22543 L4_MABX_P.XBRPassThroughEnabled_Value, &L4_MABX_B.If_Then_Else_mo);
22544
22545 /* End of Outputs for SubSystem: '<S981>/If_Then_Else' */
22546
22547 /* DataTypeConversion: '<S984>/Data Type Conversion1' */
22548 L4_MABX_B.DataTypeConversion1_gs = (real_T)
22549 L4_MABX_B.If_Then_Else_mo.XBREnduranceBrakeIntegrationMod;
22550
22551 /* DataTypeConversion: '<S984>/Data Type Conversion2' */
22552 L4_MABX_B.DataTypeConversion2_ac = (real_T)
22553 L4_MABX_B.If_Then_Else_mo.XBRPriority;
22554
22555 /* DataTypeConversion: '<S984>/Data Type Conversion3' */
22556 L4_MABX_B.DataTypeConversion3_i = (real_T)
22557 L4_MABX_B.If_Then_Else_mo.XBRControlMode;
22558
22559 /* DataTypeConversion: '<S984>/Data Type Conversion4' */
22560 L4_MABX_B.DataTypeConversion4_d =
22561 L4_MABX_B.If_Then_Else_mo.XBRExternalAccelDemand;
22562
22563 /* DataTypeConversion: '<S984>/Data Type Conversion5' */
22564 L4_MABX_B.DataTypeConversion5_h = (real_T)
22565 L4_MABX_B.If_Then_Else_mo.XBRPassThroughActive;
22566
22567 /* DataTypeConversion: '<S984>/Data Type Conversion6' */
22568 L4_MABX_B.DataTypeConversion6_h = L4_MABX_B.If_Then_Else_mo.XBRUrgency;
22569
22570 /* DataTypeConversion: '<S984>/Data Type Conversion7' */
22571 L4_MABX_B.DataTypeConversion7_g =
22572 L4_MABX_B.If_Then_Else_mo.XBRPassThroughEnabled;
22573
22574 /* UnitDelay: '<S977>/Unit_Delay' */
22575 L4_MABX_B.Unit_Delay_ah = L4_MABX_DW.Unit_Delay_DSTATE_ki;
22576
22577 /* Logic: '<S977>/Logical Operator8' */
22578 L4_MABX_B.LogicalOperator8_h = !L4_MABX_B.TmpRTBAtLogicalOperator8Inport1;
22579
22580 /* Logic: '<S977>/Logical Operator7' */
22581 L4_MABX_B.LogicalOperator7_m = (L4_MABX_B.Unit_Delay_ah &&
22582 L4_MABX_B.LogicalOperator8_h);
22583
22584 /* Logic: '<S977>/Logical Operator1' */
22585 L4_MABX_B.LogicalOperator1_d = (L4_MABX_B.LogicalOperator7_m ||
22586 L4_MABX_B.TmpRTBAtLogicalOperator1Inport2);
22587
22588 /* DataTypeConversion: '<S977>/Data Type Conversion' incorporates:
22589 * Constant: '<S821>/CANT_PROPB_XBR_B3_CHANNEL_APV'
22590 */
22591 u0 = L4_MABX_P.CANT_PROPB_XBR_B3_CHANNEL_APV_V;
22592 if (u0 < 256.0) {
22593 if (u0 >= 0.0) {
22594 tmp = (uint8_T)u0;
22595 } else {
22596 tmp = 0U;
22597 }
22598 } else {
22599 tmp = MAX_uint8_T;
22600 }
22601
22602 L4_MABX_B.DataTypeConversion_bf = tmp;
22603
22604 /* End of DataTypeConversion: '<S977>/Data Type Conversion' */
22605
22606 /* S-Function (sfix_bitop): '<S982>/Operator' */
22607 L4_MABX_B.Operator_mm = (uint8_T)(L4_MABX_B.DataTypeConversion_bf &
22608 L4_MABX_P.Operator_BitMask_ec);
22609
22610 /* DataTypeConversion: '<S982>/DataType' */
22611 L4_MABX_B.DataType_ot = L4_MABX_B.Operator_mm;
22612
22613 /* DataTypeConversion: '<S977>/Data Type Conversion2' */
22614 L4_MABX_B.DataTypeConversion2_es = (L4_MABX_B.DataType_ot != 0);
22615
22616 /* Logic: '<S977>/Logical Operator' */
22617 L4_MABX_B.LogicalOperator_b = (L4_MABX_B.LogicalOperator1_d &&
22618 L4_MABX_B.DataTypeConversion2_es);
22619
22620 /* Outputs for Enabled SubSystem: '<S984>/PropB_XBR_B3' incorporates:
22621 * EnablePort: '<S985>/Enable'
22622 */
22623 if (L4_MABX_B.LogicalOperator_b) {
22624 /* S-Function (rti_commonblock): '<S985>/S-Function1' */
22625 /* This comment workarounds a code generation problem */
22626
22627 /* dSPACE RTICAN TX Message Block: "PropB_XBR_B3" Id:218038707 */
22628 {
22629 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
22630
22631 Float32 delayTime = 0.0;
22632
22633 /* ... Read status and timestamp info (previous message) */
22634 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]);
22635
22636 /* Convert timestamp */
22637 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->processed) {
22638 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp =
22639 rtk_dsts_time_to_simtime_convert
22640 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp);
22641 }
22642
22643 /* Messages with timestamp zero have been received in pause/stop state
22644 and must not be handled.
22645 */
22646 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp > 0.0) {
22647 L4_MABX_B.SFunction1_o1_ea = (real_T)
22648 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->processed;
22649 L4_MABX_B.SFunction1_o2_me = (real_T)
22650 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->timestamp;
22651 L4_MABX_B.SFunction1_o3_ja = (real_T)
22652 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->deltatime;
22653 L4_MABX_B.SFunction1_o4_a = (real_T)
22654 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3]->delaytime;
22655 }
22656
22657 /* ... Encode Simulink signals of TX and RM blocks*/
22658 {
22659 rtican_Signal_t CAN_Sgn;
22660
22661 /* ...... "SPN2920_ExternalAccelerationDemand" (0|16, standard signal, unsigned int, little endian) */
22662 /* Add or substract 0.5 in order to round to nearest integer */
22663 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion4_d -
22664 ( -15.687 ) ) / 0.00048828125 + 0.5);
22665 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
22666 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
22667 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
22668
22669 /* ...... "SPN2915_XBREnduranceBrkIntegrationMode" (16|2, standard signal, unsigned int, little endian) */
22670 /* Add or substract 0.5 in order to round to nearest integer */
22671 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_gs ) +
22672 0.5);
22673 CAN_Sgn.UnsignedSgn &= 0x00000003;
22674 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
22675
22676 /* ...... "SPN2915_XBRPriority" (18|2, standard signal, unsigned int, little endian) */
22677 /* Add or substract 0.5 in order to round to nearest integer */
22678 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_ac ) +
22679 0.5);
22680 CAN_Sgn.UnsignedSgn &= 0x00000003;
22681 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
22682 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
22683
22684 /* ...... "SPN2916_XBRControlMode" (20|2, standard signal, unsigned int, little endian) */
22685 /* Add or substract 0.5 in order to round to nearest integer */
22686 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion3_i ) +
22687 0.5);
22688 CAN_Sgn.UnsignedSgn &= 0x00000003;
22689 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
22690 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
22691
22692 /* ...... "XBRPassThroughActive" (22|2, standard signal, unsigned int, little endian) */
22693 /* Add or substract 0.5 in order to round to nearest integer */
22694 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion5_h ) +
22695 0.5);
22696 CAN_Sgn.UnsignedSgn &= 0x00000003;
22697 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
22698 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
22699
22700 /* ...... "SPN4099_XBRUrgency" (24|8, standard signal, unsigned int, little endian) */
22701 /* Add or substract 0.5 in order to round to nearest integer */
22702 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion6_h - ( 0 )
22703 ) / 0.4 + 0.5);
22704 CAN_Sgn.UnsignedSgn &= 0x000000FF;
22705 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
22706
22707 /* ...... "XBRPassThroughEnable" (54|2, standard signal, unsigned int, little endian) */
22708 /* Add or substract 0.5 in order to round to nearest integer */
22709 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion7_g ) +
22710 0.5);
22711 CAN_Sgn.UnsignedSgn &= 0x00000003;
22712 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
22713 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
22714 }
22715
22716 /* mask unused bits with '1' */
22717 CAN_Msg[4] |= 0xFF;
22718 CAN_Msg[5] |= 0xFF;
22719 CAN_Msg[6] |= 0x3F;
22720 CAN_Msg[7] |= 0xFF;
22721
22722 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
22723 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3], 8,
22724 &(CAN_Msg[0]), delayTime);
22725 }
22726 }
22727
22728 /* End of Outputs for SubSystem: '<S984>/PropB_XBR_B3' */
22729
22730 /* RelationalOperator: '<S983>/Compare' incorporates:
22731 * Constant: '<S983>/Constant'
22732 */
22733 L4_MABX_B.Compare_ox = (L4_MABX_B.If_Then_Else_mo.XBRPassThroughActive ==
22734 L4_MABX_P.CompareToConstant_const_m);
22735
22736 /* Saturate: '<S980>/Saturation' incorporates:
22737 * Constant: '<S980>/2C2_OR_VALUE_APV'
22738 */
22739 u0 = L4_MABX_P.uC2_OR_VALUE_APV_Value;
22740 u1 = L4_MABX_P.Saturation_LowerSat_j;
22741 u2 = L4_MABX_P.Saturation_UpperSat_j;
22742 if (u0 > u2) {
22743 L4_MABX_B.Saturation_m = u2;
22744 } else if (u0 < u1) {
22745 L4_MABX_B.Saturation_m = u1;
22746 } else {
22747 L4_MABX_B.Saturation_m = u0;
22748 }
22749
22750 /* End of Saturate: '<S980>/Saturation' */
22751
22752 /* Outputs for Atomic SubSystem: '<S980>/If_Then_Else1' */
22753
22754 /* Constant: '<S980>/F_2C2_OR_APV' */
22755 L4_MABX_If_Then_Else_g(L4_MABX_P.F_2C2_OR_APV_Value, L4_MABX_B.Saturation_m,
22756 L4_MABX_B.BrakingPID_Y_je, &L4_MABX_B.If_Then_Else1_lk);
22757
22758 /* End of Outputs for SubSystem: '<S980>/If_Then_Else1' */
22759
22760 /* Gain: '<S980>/Gain' */
22761 L4_MABX_B.Gain_n = L4_MABX_P.Gain_Gain_l * L4_MABX_B.If_Then_Else1_lk.Switch;
22762
22763 /* Gain: '<S997>/Gain' */
22764 L4_MABX_B.Gain_k = L4_MABX_P.Gain_Gain_k * L4_MABX_B.Gain_n;
22765
22766 /* DataTypeConversion: '<S997>/Data Type Conversion2' */
22767 u0 = floor(L4_MABX_B.Gain_k);
22768 if (rtIsNaN(u0) || rtIsInf(u0)) {
22769 u0 = 0.0;
22770 } else {
22771 u0 = fmod(u0, 256.0);
22772 }
22773
22774 L4_MABX_B.DataTypeConversion2_hy = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
22775 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
22776
22777 /* End of DataTypeConversion: '<S997>/Data Type Conversion2' */
22778
22779 /* DataTypeConversion: '<S997>/Data Type Conversion3' incorporates:
22780 * Constant: '<S980>/BrkControlMode_Active'
22781 */
22782 u0 = floor(L4_MABX_P.BrkControlMode_Active_Value);
22783 if (rtIsNaN(u0) || rtIsInf(u0)) {
22784 u0 = 0.0;
22785 } else {
22786 u0 = fmod(u0, 256.0);
22787 }
22788
22789 L4_MABX_B.DataTypeConversion3_d4 = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
22790 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
22791
22792 /* End of DataTypeConversion: '<S997>/Data Type Conversion3' */
22793
22794 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator14' */
22795 L4_MABX_B.BitwiseOperator14 = (uint8_T)(L4_MABX_B.DataTypeConversion3_d4 &
22796 L4_MABX_P.BitwiseOperator14_BitMask);
22797
22798 /* DataTypeConversion: '<S997>/Data Type Conversion4' incorporates:
22799 * Constant: '<S980>/BrkControlPriority'
22800 */
22801 u0 = floor(L4_MABX_P.BrkControlPriority_Value);
22802 if (rtIsNaN(u0) || rtIsInf(u0)) {
22803 u0 = 0.0;
22804 } else {
22805 u0 = fmod(u0, 256.0);
22806 }
22807
22808 L4_MABX_B.DataTypeConversion4_lj = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
22809 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
22810
22811 /* End of DataTypeConversion: '<S997>/Data Type Conversion4' */
22812
22813 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator1' */
22814 L4_MABX_B.BitwiseOperator1 = (uint8_T)(L4_MABX_B.DataTypeConversion4_lj &
22815 L4_MABX_P.BitwiseOperator1_BitMask);
22816
22817 /* ArithShift: '<S997>/Shift_Arithmetic ' */
22818 L4_MABX_B.Shift_Arithmetic_ea = (uint8_T)(L4_MABX_B.BitwiseOperator1 << 2);
22819
22820 /* DataTypeConversion: '<S997>/Data Type Conversion12' */
22821 L4_MABX_B.DataTypeConversion12_e = L4_MABX_B.Shift_Arithmetic_ea;
22822
22823 /* DataTypeConversion: '<S997>/Data Type Conversion6' incorporates:
22824 * Constant: '<S997>/Constant2'
22825 */
22826 L4_MABX_B.DataTypeConversion6_e = L4_MABX_P.Constant2_Value_ad;
22827
22828 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator17' */
22829 L4_MABX_B.BitwiseOperator17_m = (uint8_T)(L4_MABX_B.BitwiseOperator14 |
22830 L4_MABX_B.DataTypeConversion12_e | L4_MABX_B.DataTypeConversion6_e);
22831
22832 /* Gain: '<S997>/Gain1' incorporates:
22833 * Constant: '<S980>/BrkControl_RearAxlePressureProportioning'
22834 */
22835 L4_MABX_B.Gain1_o = L4_MABX_P.Gain1_Gain_f *
22836 L4_MABX_P.BrkControl_RearAxlePressureProp;
22837
22838 /* DataTypeConversion: '<S997>/Data Type Conversion11' */
22839 u0 = floor(L4_MABX_B.Gain1_o);
22840 if (rtIsNaN(u0) || rtIsInf(u0)) {
22841 u0 = 0.0;
22842 } else {
22843 u0 = fmod(u0, 256.0);
22844 }
22845
22846 L4_MABX_B.DataTypeConversion11_b = (uint8_T)(u0 < 0.0 ? (int32_T)(uint8_T)
22847 -(int8_T)(uint8_T)-u0 : (int32_T)(uint8_T)u0);
22848
22849 /* End of DataTypeConversion: '<S997>/Data Type Conversion11' */
22850
22851 /* Reshape: '<S1000>/Reshape' incorporates:
22852 * Constant: '<S1000>/Constant'
22853 */
22854 for (i = 0; i < 16; i++) {
22855 L4_MABX_B.Reshape_f[i] = L4_MABX_P.Repeating_Sequence_Stair_OutV_a[i];
22856 }
22857
22858 /* End of Reshape: '<S1000>/Reshape' */
22859
22860 /* UnitDelay: '<S1000>/Unit_Delay' */
22861 L4_MABX_B.Unit_Delay_l = L4_MABX_DW.Unit_Delay_DSTATE_px;
22862
22863 /* UnitDelay: '<S1001>/Unit Delay' */
22864 L4_MABX_B.UnitDelay_k = L4_MABX_DW.UnitDelay_DSTATE_es;
22865
22866 /* Switch: '<S1004>/Switch1' incorporates:
22867 * Constant: '<S1001>/E'
22868 * Constant: '<S1001>/IV'
22869 * Switch: '<S1003>/Switch1'
22870 */
22871 if (L4_MABX_B.Unit_Delay_l) {
22872 L4_MABX_B.Switch1_fd = L4_MABX_P.IV_Value_a;
22873 } else {
22874 if (L4_MABX_P.E_Value_ld) {
22875 /* Sum: '<S1001>/Subtract' incorporates:
22876 * Constant: '<S1001>/Constant'
22877 * Switch: '<S1003>/Switch1'
22878 */
22879 q0 = L4_MABX_P.Constant_Value_fo;
22880 qY = q0 + L4_MABX_B.UnitDelay_k;
22881 if (qY < q0) {
22882 qY = MAX_uint32_T;
22883 }
22884
22885 L4_MABX_B.Subtract_nd = qY;
22886
22887 /* End of Sum: '<S1001>/Subtract' */
22888
22889 /* Switch: '<S1003>/Switch1' */
22890 L4_MABX_B.Switch1_ji = L4_MABX_B.Subtract_nd;
22891 } else {
22892 /* Switch: '<S1003>/Switch1' */
22893 L4_MABX_B.Switch1_ji = L4_MABX_B.UnitDelay_k;
22894 }
22895
22896 L4_MABX_B.Switch1_fd = L4_MABX_B.Switch1_ji;
22897 }
22898
22899 /* End of Switch: '<S1004>/Switch1' */
22900
22901 /* Selector: '<S1000>/Selector' */
22902 L4_MABX_B.Selector_k = L4_MABX_B.Reshape_f[(int32_T)L4_MABX_B.Switch1_fd - 1];
22903
22904 /* DataTypeConversion: '<S997>/Data Type Conversion10' */
22905 L4_MABX_B.DataTypeConversion10_a = L4_MABX_B.Selector_k;
22906
22907 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator6' */
22908 L4_MABX_B.BitwiseOperator6 = (uint8_T)(L4_MABX_B.DataTypeConversion10_a &
22909 L4_MABX_P.BitwiseOperator6_BitMask);
22910
22911 /* DataTypeConversion: '<S996>/Data Type Conversion6' incorporates:
22912 * Constant: '<S996>/Priority'
22913 */
22914 L4_MABX_B.DataTypeConversion6_g = L4_MABX_P.Priority_Value_o;
22915
22916 /* ArithShift: '<S996>/Shift_Arithmetic 5' */
22917 L4_MABX_B.Shift_Arithmetic5 = L4_MABX_B.DataTypeConversion6_g << 26;
22918
22919 /* DataTypeConversion: '<S996>/Data Type Conversion7' incorporates:
22920 * Constant: '<S996>/ExtendedDataPage'
22921 */
22922 L4_MABX_B.DataTypeConversion7_p = L4_MABX_P.ExtendedDataPage_Value_j;
22923
22924 /* ArithShift: '<S996>/Shift_Arithmetic 6' */
22925 L4_MABX_B.Shift_Arithmetic6 = L4_MABX_B.DataTypeConversion7_p << 25;
22926
22927 /* DataTypeConversion: '<S996>/Data Type Conversion8' incorporates:
22928 * Constant: '<S996>/DataPage'
22929 */
22930 L4_MABX_B.DataTypeConversion8_m = L4_MABX_P.DataPage_Value_a;
22931
22932 /* ArithShift: '<S996>/Shift_Arithmetic 7' */
22933 L4_MABX_B.Shift_Arithmetic7 = L4_MABX_B.DataTypeConversion8_m << 24;
22934
22935 /* DataTypeConversion: '<S996>/Data Type Conversion9' incorporates:
22936 * Constant: '<S996>/PDUFormat'
22937 */
22938 L4_MABX_B.DataTypeConversion9_e = L4_MABX_P.PDUFormat_Value_p;
22939
22940 /* ArithShift: '<S996>/Shift_Arithmetic 8' */
22941 L4_MABX_B.Shift_Arithmetic8 = L4_MABX_B.DataTypeConversion9_e << 16;
22942
22943 /* DataTypeConversion: '<S996>/Data Type Conversion10' incorporates:
22944 * Constant: '<S996>/PDUSpecific'
22945 */
22946 L4_MABX_B.DataTypeConversion10_n = L4_MABX_P.PDUSpecific_Value_c;
22947
22948 /* ArithShift: '<S996>/Shift_Arithmetic 9' */
22949 L4_MABX_B.Shift_Arithmetic9 = L4_MABX_B.DataTypeConversion10_n << 8;
22950
22951 /* DataTypeConversion: '<S996>/Data Type Conversion11' incorporates:
22952 * Constant: '<S996>/SourceAddress'
22953 */
22954 L4_MABX_B.DataTypeConversion11_e = L4_MABX_P.SourceAddress_Value_p;
22955
22956 /* S-Function (sfix_bitop): '<S996>/Bitwise Operator17' */
22957 L4_MABX_B.BitwiseOperator17 = L4_MABX_B.Shift_Arithmetic5 |
22958 L4_MABX_B.Shift_Arithmetic6 | L4_MABX_B.Shift_Arithmetic7 |
22959 L4_MABX_B.Shift_Arithmetic8 | L4_MABX_B.Shift_Arithmetic9 |
22960 L4_MABX_B.DataTypeConversion11_e;
22961
22962 /* DataTypeConversion: '<S997>/Data Type Conversion7' */
22963 L4_MABX_B.DataTypeConversion7_d = L4_MABX_B.BitwiseOperator17;
22964
22965 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator2' */
22966 L4_MABX_B.BitwiseOperator2 = L4_MABX_B.DataTypeConversion7_d &
22967 L4_MABX_P.BitwiseOperator2_BitMask;
22968
22969 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator3' */
22970 L4_MABX_B.BitwiseOperator3 = L4_MABX_B.DataTypeConversion7_d &
22971 L4_MABX_P.BitwiseOperator3_BitMask;
22972
22973 /* ArithShift: '<S997>/Shift_Arithmetic 3' */
22974 L4_MABX_B.Shift_Arithmetic3_f = L4_MABX_B.BitwiseOperator3 >> 8;
22975
22976 /* DataTypeConversion: '<S997>/Data Type Conversion5' */
22977 L4_MABX_B.DataTypeConversion5_if = (uint8_T)L4_MABX_B.Shift_Arithmetic3_f;
22978
22979 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator4' */
22980 L4_MABX_B.BitwiseOperator4 = L4_MABX_B.DataTypeConversion7_d &
22981 L4_MABX_P.BitwiseOperator4_BitMask;
22982
22983 /* ArithShift: '<S997>/Shift_Arithmetic 4' */
22984 L4_MABX_B.Shift_Arithmetic4_f = L4_MABX_B.BitwiseOperator4 >> 16;
22985
22986 /* DataTypeConversion: '<S997>/Data Type Conversion8' */
22987 L4_MABX_B.DataTypeConversion8_b = (uint8_T)L4_MABX_B.Shift_Arithmetic4_f;
22988
22989 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator5' */
22990 L4_MABX_B.BitwiseOperator5 = L4_MABX_B.DataTypeConversion7_d &
22991 L4_MABX_P.BitwiseOperator5_BitMask;
22992
22993 /* ArithShift: '<S997>/Shift_Arithmetic 5' */
22994 L4_MABX_B.Shift_Arithmetic5_n = L4_MABX_B.BitwiseOperator5 >> 24;
22995
22996 /* DataTypeConversion: '<S997>/Data Type Conversion9' */
22997 L4_MABX_B.DataTypeConversion9_m = (uint8_T)L4_MABX_B.Shift_Arithmetic5_n;
22998
22999 /* Sum: '<S997>/Add2' incorporates:
23000 * Constant: '<S997>/Constant'
23001 * Constant: '<S997>/Constant1'
23002 * Constant: '<S997>/Constant3'
23003 * Constant: '<S997>/Constant4'
23004 */
23005 L4_MABX_B.Add2_b = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
23006 (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
23007 ((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
23008 (uint8_T)((uint32_T)L4_MABX_B.DataTypeConversion2_hy +
23009 L4_MABX_B.BitwiseOperator17_m) + L4_MABX_B.DataTypeConversion11_b)
23010 + L4_MABX_P.Constant3_Value_h3) + L4_MABX_P.Constant4_Value_k) +
23011 L4_MABX_P.Constant_Value_n5) + L4_MABX_P.Constant1_Value_ahq) + (uint8_T)
23012 L4_MABX_B.BitwiseOperator2) + L4_MABX_B.DataTypeConversion5_if) +
23013 L4_MABX_B.DataTypeConversion8_b) + L4_MABX_B.DataTypeConversion9_m) +
23014 L4_MABX_B.BitwiseOperator6);
23015
23016 /* ArithShift: '<S997>/Shift_Arithmetic 6' */
23017 L4_MABX_B.Shift_Arithmetic6_n = (uint8_T)((uint32_T)L4_MABX_B.Add2_b >> 4);
23018
23019 /* Sum: '<S997>/Add3' */
23020 L4_MABX_B.Add3_d = (uint8_T)((uint32_T)L4_MABX_B.Shift_Arithmetic6_n +
23021 L4_MABX_B.Add2_b);
23022
23023 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator8' */
23024 L4_MABX_B.BitwiseOperator8 = (uint8_T)(L4_MABX_B.Add3_d &
23025 L4_MABX_P.BitwiseOperator8_BitMask);
23026
23027 /* ArithShift: '<S997>/Shift_Arithmetic 7' */
23028 L4_MABX_B.Shift_Arithmetic7_e = (uint8_T)(L4_MABX_B.BitwiseOperator8 << 4);
23029
23030 /* S-Function (sfix_bitop): '<S997>/Bitwise Operator7' */
23031 L4_MABX_B.BitwiseOperator7 = (uint8_T)(L4_MABX_B.BitwiseOperator6 |
23032 L4_MABX_B.Shift_Arithmetic7_e);
23033
23034 /* DataTypeConversion: '<S978>/Data Type Conversion1' incorporates:
23035 * Constant: '<S997>/Constant'
23036 * Constant: '<S997>/Constant1'
23037 * Constant: '<S997>/Constant3'
23038 * Constant: '<S997>/Constant4'
23039 */
23040 L4_MABX_B.DataTypeConversion1_d[0] = L4_MABX_B.DataTypeConversion2_hy;
23041 L4_MABX_B.DataTypeConversion1_d[1] = L4_MABX_B.BitwiseOperator17_m;
23042 L4_MABX_B.DataTypeConversion1_d[2] = L4_MABX_B.DataTypeConversion11_b;
23043 L4_MABX_B.DataTypeConversion1_d[3] = L4_MABX_P.Constant3_Value_h3;
23044 L4_MABX_B.DataTypeConversion1_d[4] = L4_MABX_P.Constant4_Value_k;
23045 L4_MABX_B.DataTypeConversion1_d[5] = L4_MABX_P.Constant_Value_n5;
23046 L4_MABX_B.DataTypeConversion1_d[6] = L4_MABX_P.Constant1_Value_ahq;
23047 L4_MABX_B.DataTypeConversion1_d[7] = L4_MABX_B.BitwiseOperator7;
23048
23049 /* Outputs for Enabled SubSystem: '<S986>/PropB_Bendix_2C2_XPR' incorporates:
23050 * EnablePort: '<S987>/Enable'
23051 */
23052 /* Constant: '<S980>/CPV' */
23053 if (L4_MABX_P.CPV_Value_f) {
23054 /* S-Function (rti_commonblock): '<S987>/S-Function1' */
23055 /* This comment workarounds a code generation problem */
23056
23057 /* dSPACE RTICAN TX Message Block: "PropB_Bendix_2C2_XPR" Id:218060389 */
23058 {
23059 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
23060
23061 Float32 delayTime = 0.0;
23062
23063 /* ... Read status and timestamp info (previous message) */
23064 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]);
23065
23066 /* Convert timestamp */
23067 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->processed) {
23068 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp =
23069 rtk_dsts_time_to_simtime_convert
23070 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp);
23071 }
23072
23073 /* Messages with timestamp zero have been received in pause/stop state
23074 and must not be handled.
23075 */
23076 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp > 0.0) {
23077 L4_MABX_B.SFunction1_o1_gq = (real_T)
23078 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->processed;
23079 L4_MABX_B.SFunction1_o2_j = (real_T)
23080 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->timestamp;
23081 L4_MABX_B.SFunction1_o3_p = (real_T)
23082 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->deltatime;
23083 L4_MABX_B.SFunction1_o4_e = (real_T)
23084 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665]->delaytime;
23085 }
23086
23087 /* ... Encode Simulink signals of TX and RM blocks*/
23088 {
23089 rtican_Signal_t CAN_Sgn;
23090
23091 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
23092 /* Add or substract 0.5 in order to round to nearest integer */
23093 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[0] ) +
23094 0.5);
23095 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23096 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23097
23098 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
23099 /* Add or substract 0.5 in order to round to nearest integer */
23100 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[1] ) +
23101 0.5);
23102 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23103 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
23104
23105 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
23106 /* Add or substract 0.5 in order to round to nearest integer */
23107 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[2] ) +
23108 0.5);
23109 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23110 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23111
23112 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
23113 /* Add or substract 0.5 in order to round to nearest integer */
23114 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[3] ) +
23115 0.5);
23116 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23117 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23118
23119 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
23120 /* Add or substract 0.5 in order to round to nearest integer */
23121 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[4] ) +
23122 0.5);
23123 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23124 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23125
23126 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
23127 /* Add or substract 0.5 in order to round to nearest integer */
23128 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[5] ) +
23129 0.5);
23130 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23131 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
23132
23133 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
23134 /* Add or substract 0.5 in order to round to nearest integer */
23135 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[6] ) +
23136 0.5);
23137 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23138 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23139
23140 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
23141 /* Add or substract 0.5 in order to round to nearest integer */
23142 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_d[7] ) +
23143 0.5);
23144 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23145 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23146 }
23147
23148 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
23149 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665], 8,
23150 &(CAN_Msg[0]), delayTime);
23151 }
23152 }
23153
23154 /* End of Constant: '<S980>/CPV' */
23155 /* End of Outputs for SubSystem: '<S986>/PropB_Bendix_2C2_XPR' */
23156
23157 /* DataTypeConversion: '<S994>/Data Type Conversion' */
23158 L4_MABX_B.DataTypeConversion_i = L4_MABX_B.FrontAxleSpeed_n;
23159
23160 /* DataTypeConversion: '<S994>/Data Type Conversion1' */
23161 L4_MABX_B.DataTypeConversion1_l = L4_MABX_B.SPN1807_SteeringWheelAngle_b;
23162
23163 /* DataTypeConversion: '<S994>/Data Type Conversion2' */
23164 L4_MABX_B.DataTypeConversion2_i = L4_MABX_B.SPN1808_YawRate_m;
23165
23166 /* DataTypeConversion: '<S994>/Data Type Conversion3' */
23167 L4_MABX_B.DataTypeConversion3_l = L4_MABX_B.SPN1810_LongitudinalAccelerat_c;
23168
23169 /* DataTypeConversion: '<S979>/Data Type Conversion' incorporates:
23170 * Constant: '<S821>/CANT_STD_ODOMETRY_CHANNEL_APV'
23171 */
23172 L4_MABX_B.DataTypeConversion_op = (uint8_T)
23173 L4_MABX_P.CANT_STD_ODOMETRY_CHANNEL_APV_V;
23174
23175 /* S-Function (sfix_bitop): '<S993>/Operator' */
23176 L4_MABX_B.Operator_ho = (uint8_T)(L4_MABX_B.DataTypeConversion_op &
23177 L4_MABX_P.Operator_BitMask_ce);
23178
23179 /* DataTypeConversion: '<S993>/DataType' */
23180 L4_MABX_B.DataType = L4_MABX_B.Operator_ho;
23181
23182 /* ArithShift: '<S979>/Shift_Arithmetic 4' */
23183 L4_MABX_B.Shift_Arithmetic4 = ldexp(L4_MABX_B.DataType, (-5));
23184
23185 /* DataTypeConversion: '<S979>/Data Type Conversion7' */
23186 L4_MABX_B.DataTypeConversion7_go = (L4_MABX_B.Shift_Arithmetic4 != 0.0);
23187
23188 /* Outputs for Enabled SubSystem: '<S994>/Std_OdometryData' incorporates:
23189 * EnablePort: '<S995>/Enable'
23190 */
23191 if (L4_MABX_B.DataTypeConversion7_go) {
23192 /* S-Function (rti_commonblock): '<S995>/S-Function1' */
23193 /* This comment workarounds a code generation problem */
23194
23195 /* dSPACE RTICAN TX Message Block: "Std_OdometryData" Id:10 */
23196 {
23197 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
23198
23199 Float32 delayTime = 0.0;
23200
23201 /* ... Read status and timestamp info (previous message) */
23202 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]);
23203
23204 /* Convert timestamp */
23205 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->processed) {
23206 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp =
23207 rtk_dsts_time_to_simtime_convert
23208 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp);
23209 }
23210
23211 /* Messages with timestamp zero have been received in pause/stop state
23212 and must not be handled.
23213 */
23214 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp > 0.0) {
23215 L4_MABX_B.SFunction1_o1_ge = (real_T)
23216 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->processed;
23217 L4_MABX_B.SFunction1_o2_e = (real_T)
23218 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->timestamp;
23219 L4_MABX_B.SFunction1_o3_i = (real_T)
23220 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->deltatime;
23221 L4_MABX_B.SFunction1_o4_h = (real_T)
23222 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA]->delaytime;
23223 }
23224
23225 /* ... Encode Simulink signals of TX and RM blocks*/
23226 {
23227 rtican_Signal_t CAN_Sgn;
23228
23229 /* ...... "SPN904_FrontAxleSpeed" (0|16, standard signal, unsigned int, little endian) */
23230 /* Add or substract 0.5 in order to round to nearest integer */
23231 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_i - ( 0 )
23232 ) / 0.00390625 + 0.5);
23233 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23234 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23235 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
23236
23237 /* ...... "SPN1807_SteeringWheelAngle" (16|16, standard signal, unsigned int, little endian) */
23238 /* Add or substract 0.5 in order to round to nearest integer */
23239 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_l -
23240 ( -31.374 ) ) / 0.0009765625 + 0.5);
23241 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23242 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23243 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
23244
23245 /* ...... "SPN1808_YawRate" (32|16, standard signal, unsigned int, little endian) */
23246 /* Add or substract 0.5 in order to round to nearest integer */
23247 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_i -
23248 ( -3.92 ) ) / 0.0001220703125 + 0.5);
23249 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23250 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23251 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
23252
23253 /* ...... "SPN1810_LongitudinalAcceleration" (48|8, standard signal, unsigned int, little endian) */
23254 /* Add or substract 0.5 in order to round to nearest integer */
23255 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion3_l -
23256 ( -12.5 ) ) / 0.1 + 0.5);
23257 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23258 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23259 }
23260
23261 /* mask unused bits with '1' */
23262 CAN_Msg[7] |= 0xFF;
23263
23264 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
23265 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA], 8, &(CAN_Msg[0]),
23266 delayTime);
23267 }
23268 }
23269
23270 /* End of Outputs for SubSystem: '<S994>/Std_OdometryData' */
23271
23272 /* S-Function (sfix_bitop): '<S988>/Operator' */
23273 L4_MABX_B.Operator_if = (uint8_T)(L4_MABX_B.DataTypeConversion_op &
23274 L4_MABX_P.Operator_BitMask_g);
23275
23276 /* DataTypeConversion: '<S988>/DataType' */
23277 L4_MABX_B.DataType_fw = L4_MABX_B.Operator_if;
23278
23279 /* S-Function (sfix_bitop): '<S989>/Operator' */
23280 L4_MABX_B.Operator_i0 = (uint8_T)(L4_MABX_B.DataTypeConversion_op &
23281 L4_MABX_P.Operator_BitMask_e3);
23282
23283 /* DataTypeConversion: '<S989>/DataType' */
23284 L4_MABX_B.DataType_b = L4_MABX_B.Operator_i0;
23285
23286 /* S-Function (sfix_bitop): '<S990>/Operator' */
23287 L4_MABX_B.Operator_mt = (uint8_T)(L4_MABX_B.DataTypeConversion_op &
23288 L4_MABX_P.Operator_BitMask_mb);
23289
23290 /* DataTypeConversion: '<S990>/DataType' */
23291 L4_MABX_B.DataType_n = L4_MABX_B.Operator_mt;
23292
23293 /* S-Function (sfix_bitop): '<S991>/Operator' */
23294 L4_MABX_B.Operator_bm = (uint8_T)(L4_MABX_B.DataTypeConversion_op &
23295 L4_MABX_P.Operator_BitMask_j4);
23296
23297 /* DataTypeConversion: '<S991>/DataType' */
23298 L4_MABX_B.DataType_nf = L4_MABX_B.Operator_bm;
23299
23300 /* S-Function (sfix_bitop): '<S992>/Operator' */
23301 L4_MABX_B.Operator_fo = (uint8_T)(L4_MABX_B.DataTypeConversion_op &
23302 L4_MABX_P.Operator_BitMask_i5);
23303
23304 /* DataTypeConversion: '<S992>/DataType' */
23305 L4_MABX_B.DataType_h = L4_MABX_B.Operator_fo;
23306
23307 /* DataTypeConversion: '<S979>/Data Type Conversion2' */
23308 L4_MABX_B.DataTypeConversion2_a1 = (L4_MABX_B.DataType_fw != 0);
23309
23310 /* ArithShift: '<S979>/Shift_Arithmetic ' */
23311 L4_MABX_B.Shift_Arithmetic = ldexp(L4_MABX_B.DataType_b, (-1));
23312
23313 /* DataTypeConversion: '<S979>/Data Type Conversion3' */
23314 L4_MABX_B.DataTypeConversion3_p3 = (L4_MABX_B.Shift_Arithmetic != 0.0);
23315
23316 /* ArithShift: '<S979>/Shift_Arithmetic 1' */
23317 L4_MABX_B.Shift_Arithmetic1 = ldexp(L4_MABX_B.DataType_n, (-2));
23318
23319 /* DataTypeConversion: '<S979>/Data Type Conversion4' */
23320 L4_MABX_B.DataTypeConversion4_nc = (L4_MABX_B.Shift_Arithmetic1 != 0.0);
23321
23322 /* ArithShift: '<S979>/Shift_Arithmetic 2' */
23323 L4_MABX_B.Shift_Arithmetic2 = ldexp(L4_MABX_B.DataType_nf, (-3));
23324
23325 /* DataTypeConversion: '<S979>/Data Type Conversion5' */
23326 L4_MABX_B.DataTypeConversion5_bi = (L4_MABX_B.Shift_Arithmetic2 != 0.0);
23327
23328 /* ArithShift: '<S979>/Shift_Arithmetic 3' */
23329 L4_MABX_B.Shift_Arithmetic3 = ldexp(L4_MABX_B.DataType_h, (-4));
23330
23331 /* DataTypeConversion: '<S979>/Data Type Conversion6' */
23332 L4_MABX_B.DataTypeConversion6_dq = (L4_MABX_B.Shift_Arithmetic3 != 0.0);
23333
23334 /* RelationalOperator: '<S1002>/Operator' */
23335 L4_MABX_B.Operator_nl = (L4_MABX_B.Switch1_fd == L4_MABX_B.Width_l);
23336
23337 /* Lookup_n-D: '<S981>/DECEL_GOV_XBR_URGENCY_MPV' */
23338 L4_MABX_B.XBRUrgency = look1_binlcapw(L4_MABX_B.XBRExternalAccelDemand,
23339 L4_MABX_P.DECEL_GOV_XBR_URGENCY_MPV_bp01D,
23340 L4_MABX_P.DECEL_GOV_XBR_URGENCY_MPV_table, 7U);
23341
23342 /* End of Outputs for SubSystem: '<S815>/CAN_TX_20ms' */
23343
23344 /* Outputs for Atomic SubSystem: '<S65>/Task_20ms' */
23345 /* RelationalOperator: '<S382>/CheckHDOP' incorporates:
23346 * Constant: '<S382>/MaximumGoodHDOP'
23347 */
23348 L4_MABX_B.CheckHDOP = (L4_MABX_B.HDOP__f1 <= L4_MABX_P.MaximumGoodHDOP_Value);
23349
23350 /* Gain: '<S382>/kph2mps' */
23351 L4_MABX_B.kph2mps = L4_MABX_P.kph2mps_Gain_l * L4_MABX_B.FrontAxleSpeed_d;
23352
23353 /* Product: '<S382>/Product' incorporates:
23354 * Constant: '<S382>/lookAheadTime'
23355 */
23356 L4_MABX_B.Product_c = L4_MABX_B.kph2mps * L4_MABX_P.lookAheadTime_Value;
23357
23358 /* Gain: '<S382>/kph2mps1' */
23359 L4_MABX_B.kph2mps1 = L4_MABX_P.kph2mps1_Gain * L4_MABX_B.FrontAxleSpeed_dv;
23360
23361 /* Product: '<S382>/Product1' incorporates:
23362 * Constant: '<S382>/lookAheadTime1'
23363 */
23364 L4_MABX_B.Product1_h = L4_MABX_B.kph2mps1 * L4_MABX_P.lookAheadTime1_Value;
23365
23366 /* UnitDelay: '<S382>/Unit Delay1' */
23367 L4_MABX_B.UnitDelay1 = L4_MABX_DW.UnitDelay1_DSTATE;
23368
23369 /* Constant: '<S383>/InitialHeading' */
23370 L4_MABX_B.InitialHeading = L4_MABX_P.InitialHeading_Value;
23371
23372 /* Constant: '<S383>/InitialPosition' */
23373 L4_MABX_B.InitialPosition = L4_MABX_P.InitialPosition_Value;
23374
23375 /* Constant: '<S383>/InitialXPosition' */
23376 L4_MABX_B.InitialXPosition = L4_MABX_P.InitialXPosition_Value;
23377
23378 /* Constant: '<S383>/InitialYPosition' */
23379 L4_MABX_B.InitialYPosition = L4_MABX_P.InitialYPosition_Value;
23380
23381 /* Gain: '<S71>/kph2ms' */
23382 L4_MABX_B.kph2ms = L4_MABX_P.kph2ms_Gain * L4_MABX_B.FrontAxleSpeed_dvq;
23383
23384 /* DiscreteIntegrator: '<S383>/LongitudnalPosition' incorporates:
23385 * Constant: '<S382>/Constant'
23386 */
23387 if ((L4_MABX_P.Constant_Value_p > 0.0) &&
23388 (L4_MABX_DW.LongitudnalPosition_PrevResetSt <= 0)) {
23389 L4_MABX_DW.LongitudnalPosition_DSTATE = L4_MABX_B.InitialPosition;
23390 }
23391
23392 L4_MABX_B.LongitudnalPosition = L4_MABX_P.LongitudnalPosition_gainval *
23393 L4_MABX_B.kph2ms + L4_MABX_DW.LongitudnalPosition_DSTATE;
23394
23395 /* End of DiscreteIntegrator: '<S383>/LongitudnalPosition' */
23396
23397 /* Trigonometry: '<S383>/Trigonometric Function' */
23398 L4_MABX_B.TrigonometricFunction = sin(L4_MABX_B.kph2ms);
23399
23400 /* Trigonometry: '<S383>/Trigonometric Function1' */
23401 L4_MABX_B.TrigonometricFunction1 = cos(L4_MABX_B.kph2ms);
23402
23403 /* DiscreteIntegrator: '<S383>/VehHeading' incorporates:
23404 * Constant: '<S383>/reset'
23405 */
23406 if ((L4_MABX_P.reset_Value > 0.0) && (L4_MABX_DW.VehHeading_PrevResetState <=
23407 0)) {
23408 L4_MABX_DW.VehHeading_DSTATE = L4_MABX_B.InitialHeading;
23409 }
23410
23411 L4_MABX_B.VehHeading = L4_MABX_P.VehHeading_gainval *
23412 L4_MABX_B.TmpRTBAtVehHeadingInport1 + L4_MABX_DW.VehHeading_DSTATE;
23413
23414 /* End of DiscreteIntegrator: '<S383>/VehHeading' */
23415
23416 /* DiscreteIntegrator: '<S383>/XPosition' incorporates:
23417 * Constant: '<S383>/reset'
23418 */
23419 if ((L4_MABX_P.reset_Value > 0.0) && (L4_MABX_DW.XPosition_PrevResetState <= 0))
23420 {
23421 L4_MABX_DW.XPosition_DSTATE = L4_MABX_B.InitialXPosition;
23422 }
23423
23424 L4_MABX_B.XPosition = L4_MABX_P.XPosition_gainval *
23425 L4_MABX_B.TrigonometricFunction1 + L4_MABX_DW.XPosition_DSTATE;
23426
23427 /* End of DiscreteIntegrator: '<S383>/XPosition' */
23428
23429 /* DiscreteIntegrator: '<S383>/YPosition' incorporates:
23430 * Constant: '<S383>/reset'
23431 */
23432 if ((L4_MABX_P.reset_Value > 0.0) && (L4_MABX_DW.YPosition_PrevResetState <= 0))
23433 {
23434 L4_MABX_DW.YPosition_DSTATE = L4_MABX_B.InitialYPosition;
23435 }
23436
23437 L4_MABX_B.YPosition = L4_MABX_P.YPosition_gainval *
23438 L4_MABX_B.TrigonometricFunction + L4_MABX_DW.YPosition_DSTATE;
23439
23440 /* End of DiscreteIntegrator: '<S383>/YPosition' */
23441 /* End of Outputs for SubSystem: '<S65>/Task_20ms' */
23442
23443 /* UnitDelay: '<S3>/Unit_Delay' */
23444 L4_MABX_B.S = L4_MABX_DW.Unit_Delay_48_DSTATE;
23445 L4_MABX_B.B = L4_MABX_DW.Unit_Delay_49_DSTATE;
23446 L4_MABX_B.X = L4_MABX_DW.Unit_Delay_50_DSTATE;
23447 L4_MABX_B.Y = L4_MABX_DW.Unit_Delay_51_DSTATE;
23448 L4_MABX_B.pathCurveOffset = L4_MABX_DW.Unit_Delay_52_DSTATE;
23449 L4_MABX_B.S_k = L4_MABX_DW.Unit_Delay_53_DSTATE;
23450 L4_MABX_B.distanceSpdTarget = L4_MABX_DW.Unit_Delay_54_DSTATE;
23451 L4_MABX_B.state = L4_MABX_DW.Unit_Delay_55_DSTATE;
23452 L4_MABX_B.lastWayPointIdx = L4_MABX_DW.Unit_Delay_56_DSTATE;
23453 L4_MABX_B.crossed = L4_MABX_DW.Unit_Delay_57_DSTATE;
23454 L4_MABX_B.minimumDist = L4_MABX_DW.Unit_Delay_58_DSTATE;
23455 L4_MABX_B.SrefOnthisPath = L4_MABX_DW.Unit_Delay_59_DSTATE;
23456 L4_MABX_B.StartDist = L4_MABX_DW.Unit_Delay_60_DSTATE;
23457 L4_MABX_B.minDistIdx = L4_MABX_DW.Unit_Delay_61_DSTATE;
23458 L4_MABX_B.pathS = L4_MABX_DW.Unit_Delay_62_DSTATE;
23459 L4_MABX_B.pathLat = L4_MABX_DW.Unit_Delay_63_DSTATE;
23460 L4_MABX_B.pathLong = L4_MABX_DW.Unit_Delay_64_DSTATE;
23461 L4_MABX_B.pathSteeringAngle = L4_MABX_DW.Unit_Delay_65_DSTATE;
23462 L4_MABX_B.pathSpdLimit = L4_MABX_DW.Unit_Delay_66_DSTATE;
23463 L4_MABX_B.distance = L4_MABX_DW.Unit_Delay_67_DSTATE;
23464 L4_MABX_B.idx = L4_MABX_DW.Unit_Delay_68_DSTATE;
23465 L4_MABX_B.wpidx = L4_MABX_DW.Unit_Delay_69_DSTATE;
23466 L4_MABX_B.pathOffset = L4_MABX_DW.Unit_Delay_70_DSTATE;
23467 L4_MABX_B.sRefDistance = L4_MABX_DW.Unit_Delay_71_DSTATE;
23468 L4_MABX_B.refDistance = L4_MABX_DW.Unit_Delay_72_DSTATE;
23469 L4_MABX_B.wpIdx = L4_MABX_DW.Unit_Delay_73_DSTATE;
23470 L4_MABX_B.previewSteeringAngle_a = L4_MABX_DW.Unit_Delay_74_DSTATE;
23471 L4_MABX_B.desHeading = L4_MABX_DW.Unit_Delay_75_DSTATE;
23472 L4_MABX_B.actPreviewDist = L4_MABX_DW.Unit_Delay_76_DSTATE;
23473 L4_MABX_B.desPreviewDist = L4_MABX_DW.Unit_Delay_77_DSTATE;
23474 L4_MABX_B.mappingSearchCase = L4_MABX_DW.Unit_Delay_78_DSTATE;
23475
23476 /* user code (Output function Trailer for TID1) */
23477
23478 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
23479 /* EventChannel: 0 */
23480 if (tid == 0) {
23481 DSXCP_service(0);
23482 }
23483
23484 /* If subsystem generates rate grouping Output functions,
23485 * when tid is used in Output function for one rate,
23486 * all Output functions include tid as a local variable.
23487 * As result, some Output functions may have unused tid.
23488 */
23489 UNUSED_PARAMETER(tid);
23490}
23491
23492/* Model update function for TID1 */
23493void L4_MABX_update1(void) /* Sample time: [0.02s, 0.0s] */
23494{
23495 /* Update for Atomic SubSystem: '<S65>/Task_10ms' */
23496 /* Update for RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' incorporates:
23497 * Constant: '<S382>/Constant2'
23498 */
23499 L4_MABX_DW.TmpRTBAtSignalConversion1Inport = L4_MABX_P.Constant2_Value_a;
23500
23501 /* Update for RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' incorporates:
23502 * Constant: '<S382>/Constant13'
23503 */
23504 L4_MABX_DW.TmpRTBAtSignalConversion3Inport = L4_MABX_P.Constant13_Value;
23505
23506 /* Update for RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' incorporates:
23507 * Constant: '<S382>/Constant14'
23508 */
23509 L4_MABX_DW.TmpRTBAtSignalConversion2Inport = L4_MABX_P.Constant14_Value;
23510
23511 /* Update for RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' incorporates:
23512 * Constant: '<S382>/Constant17'
23513 */
23514 L4_MABX_DW.TmpRTBAtrad2deg1Inport1_Buffer0 = L4_MABX_P.Constant17_Value;
23515
23516 /* Update for RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' incorporates:
23517 * Constant: '<S382>/Constant1'
23518 */
23519 L4_MABX_DW.TmpRTBAtsignCurveOffsetInport1_ = L4_MABX_P.Constant1_Value_g;
23520
23521 /* Update for RateTransition: '<S277>/TmpRTBAtAdd2Inport2' incorporates:
23522 * Constant: '<S382>/Constant18'
23523 */
23524 L4_MABX_DW.TmpRTBAtAdd2Inport2_Buffer0 = L4_MABX_P.Constant18_Value;
23525
23526 /* End of Update for SubSystem: '<S65>/Task_10ms' */
23527
23528 /* Update for Atomic SubSystem: '<S815>/CAN_TX_20ms' */
23529
23530 /* Update for UnitDelay: '<S977>/Unit_Delay' */
23531 L4_MABX_DW.Unit_Delay_DSTATE_ki = L4_MABX_B.TmpRTBAtUnit_DelayInport1;
23532
23533 /* Update for UnitDelay: '<S1000>/Unit_Delay' */
23534 L4_MABX_DW.Unit_Delay_DSTATE_px = L4_MABX_B.Operator_nl;
23535
23536 /* Update for UnitDelay: '<S1001>/Unit Delay' */
23537 L4_MABX_DW.UnitDelay_DSTATE_es = L4_MABX_B.Switch1_fd;
23538
23539 /* End of Update for SubSystem: '<S815>/CAN_TX_20ms' */
23540
23541 /* Update for Atomic SubSystem: '<S65>/Task_20ms' */
23542 /* Update for UnitDelay: '<S382>/Unit Delay1' */
23543 L4_MABX_DW.UnitDelay1_DSTATE = L4_MABX_B.LongitudnalPosition;
23544
23545 /* Update for DiscreteIntegrator: '<S383>/LongitudnalPosition' incorporates:
23546 * Constant: '<S382>/Constant'
23547 */
23548 L4_MABX_DW.LongitudnalPosition_DSTATE = L4_MABX_P.LongitudnalPosition_gainval *
23549 L4_MABX_B.kph2ms + L4_MABX_B.LongitudnalPosition;
23550 if (L4_MABX_P.Constant_Value_p > 0.0) {
23551 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 1;
23552 } else if (L4_MABX_P.Constant_Value_p < 0.0) {
23553 L4_MABX_DW.LongitudnalPosition_PrevResetSt = -1;
23554 } else if (L4_MABX_P.Constant_Value_p == 0.0) {
23555 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 0;
23556 } else {
23557 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 2;
23558 }
23559
23560 /* End of Update for DiscreteIntegrator: '<S383>/LongitudnalPosition' */
23561
23562 /* Update for DiscreteIntegrator: '<S383>/VehHeading' incorporates:
23563 * Constant: '<S383>/reset'
23564 * DiscreteIntegrator: '<S383>/XPosition'
23565 */
23566 L4_MABX_DW.VehHeading_DSTATE = L4_MABX_P.VehHeading_gainval *
23567 L4_MABX_B.TmpRTBAtVehHeadingInport1 + L4_MABX_B.VehHeading;
23568 if (L4_MABX_P.reset_Value > 0.0) {
23569 L4_MABX_DW.VehHeading_PrevResetState = 1;
23570 L4_MABX_DW.XPosition_PrevResetState = 1;
23571 } else {
23572 if (L4_MABX_P.reset_Value < 0.0) {
23573 L4_MABX_DW.VehHeading_PrevResetState = -1;
23574 } else if (L4_MABX_P.reset_Value == 0.0) {
23575 L4_MABX_DW.VehHeading_PrevResetState = 0;
23576 } else {
23577 L4_MABX_DW.VehHeading_PrevResetState = 2;
23578 }
23579
23580 if (L4_MABX_P.reset_Value < 0.0) {
23581 L4_MABX_DW.XPosition_PrevResetState = -1;
23582 } else if (L4_MABX_P.reset_Value == 0.0) {
23583 L4_MABX_DW.XPosition_PrevResetState = 0;
23584 } else {
23585 L4_MABX_DW.XPosition_PrevResetState = 2;
23586 }
23587 }
23588
23589 /* End of Update for DiscreteIntegrator: '<S383>/VehHeading' */
23590
23591 /* Update for DiscreteIntegrator: '<S383>/XPosition' */
23592 L4_MABX_DW.XPosition_DSTATE = L4_MABX_P.XPosition_gainval *
23593 L4_MABX_B.TrigonometricFunction1 + L4_MABX_B.XPosition;
23594
23595 /* Update for DiscreteIntegrator: '<S383>/YPosition' incorporates:
23596 * Constant: '<S383>/reset'
23597 */
23598 L4_MABX_DW.YPosition_DSTATE = L4_MABX_P.YPosition_gainval *
23599 L4_MABX_B.TrigonometricFunction + L4_MABX_B.YPosition;
23600 if (L4_MABX_P.reset_Value > 0.0) {
23601 L4_MABX_DW.YPosition_PrevResetState = 1;
23602 } else if (L4_MABX_P.reset_Value < 0.0) {
23603 L4_MABX_DW.YPosition_PrevResetState = -1;
23604 } else if (L4_MABX_P.reset_Value == 0.0) {
23605 L4_MABX_DW.YPosition_PrevResetState = 0;
23606 } else {
23607 L4_MABX_DW.YPosition_PrevResetState = 2;
23608 }
23609
23610 /* End of Update for DiscreteIntegrator: '<S383>/YPosition' */
23611 /* End of Update for SubSystem: '<S65>/Task_20ms' */
23612
23613 /* Update for UnitDelay: '<S3>/Unit_Delay' incorporates:
23614 * Constant: '<S382>/Constant1'
23615 * Constant: '<S382>/Constant10'
23616 * Constant: '<S382>/Constant11'
23617 * Constant: '<S382>/Constant12'
23618 * Constant: '<S382>/Constant13'
23619 * Constant: '<S382>/Constant14'
23620 * Constant: '<S382>/Constant15'
23621 * Constant: '<S382>/Constant16'
23622 * Constant: '<S382>/Constant17'
23623 * Constant: '<S382>/Constant18'
23624 * Constant: '<S382>/Constant19'
23625 * Constant: '<S382>/Constant2'
23626 * Constant: '<S382>/Constant20'
23627 * Constant: '<S382>/Constant21'
23628 * Constant: '<S382>/Constant22'
23629 * Constant: '<S382>/Constant23'
23630 * Constant: '<S382>/Constant24'
23631 * Constant: '<S382>/Constant25'
23632 * Constant: '<S382>/Constant3'
23633 * Constant: '<S382>/Constant4'
23634 * Constant: '<S382>/Constant5'
23635 * Constant: '<S382>/Constant6'
23636 * Constant: '<S382>/Constant7'
23637 * Constant: '<S382>/Constant8'
23638 * Constant: '<S382>/Constant9'
23639 */
23640 L4_MABX_DW.Unit_Delay_48_DSTATE = L4_MABX_B.LongitudnalPosition;
23641 L4_MABX_DW.Unit_Delay_49_DSTATE = L4_MABX_B.VehHeading;
23642 L4_MABX_DW.Unit_Delay_50_DSTATE = L4_MABX_B.XPosition;
23643 L4_MABX_DW.Unit_Delay_51_DSTATE = L4_MABX_B.YPosition;
23644 L4_MABX_DW.Unit_Delay_52_DSTATE = L4_MABX_P.Constant1_Value_g;
23645 L4_MABX_DW.Unit_Delay_53_DSTATE = L4_MABX_B.UnitDelay1;
23646 L4_MABX_DW.Unit_Delay_54_DSTATE = L4_MABX_P.Constant2_Value_a;
23647 L4_MABX_DW.Unit_Delay_55_DSTATE = L4_MABX_P.Constant3_Value_l;
23648 L4_MABX_DW.Unit_Delay_56_DSTATE = L4_MABX_P.Constant4_Value_m;
23649 L4_MABX_DW.Unit_Delay_57_DSTATE = L4_MABX_P.Constant5_Value_b;
23650 L4_MABX_DW.Unit_Delay_58_DSTATE = L4_MABX_P.Constant10_Value_h;
23651 L4_MABX_DW.Unit_Delay_59_DSTATE = L4_MABX_P.Constant25_Value;
23652 L4_MABX_DW.Unit_Delay_60_DSTATE = L4_MABX_P.Constant6_Value_e;
23653 L4_MABX_DW.Unit_Delay_61_DSTATE = L4_MABX_P.Constant7_Value;
23654 L4_MABX_DW.Unit_Delay_62_DSTATE = L4_MABX_P.Constant8_Value;
23655 L4_MABX_DW.Unit_Delay_63_DSTATE = L4_MABX_P.Constant9_Value_m;
23656 L4_MABX_DW.Unit_Delay_64_DSTATE = L4_MABX_P.Constant11_Value;
23657 L4_MABX_DW.Unit_Delay_65_DSTATE = L4_MABX_P.Constant12_Value;
23658 L4_MABX_DW.Unit_Delay_66_DSTATE = L4_MABX_P.Constant13_Value;
23659 L4_MABX_DW.Unit_Delay_67_DSTATE = L4_MABX_P.Constant14_Value;
23660 L4_MABX_DW.Unit_Delay_68_DSTATE = L4_MABX_P.Constant19_Value_m;
23661 L4_MABX_DW.Unit_Delay_69_DSTATE = L4_MABX_P.Constant16_Value;
23662 L4_MABX_DW.Unit_Delay_70_DSTATE = L4_MABX_P.Constant21_Value_g;
23663 L4_MABX_DW.Unit_Delay_71_DSTATE = L4_MABX_P.Constant22_Value;
23664 L4_MABX_DW.Unit_Delay_72_DSTATE = L4_MABX_P.Constant15_Value;
23665 L4_MABX_DW.Unit_Delay_73_DSTATE = L4_MABX_P.Constant20_Value_i;
23666 L4_MABX_DW.Unit_Delay_74_DSTATE = L4_MABX_P.Constant17_Value;
23667 L4_MABX_DW.Unit_Delay_75_DSTATE = L4_MABX_P.Constant18_Value;
23668 L4_MABX_DW.Unit_Delay_76_DSTATE = L4_MABX_P.Constant23_Value;
23669 L4_MABX_DW.Unit_Delay_77_DSTATE = L4_MABX_B.Product_c;
23670 L4_MABX_DW.Unit_Delay_78_DSTATE = L4_MABX_P.Constant24_Value;
23671}
23672
23673/* Model output function for TID2 */
23674void L4_MABX_output2(void) /* Sample time: [0.05s, 0.0s] */
23675{
23676 int_T tid = 2;
23677
23678 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_50ms' */
23679
23680 /* Outputs for Enabled SubSystem: '<S1020>/CCVS1_E3' incorporates:
23681 * EnablePort: '<S1022>/Enable'
23682 */
23683 /* Constant: '<S824>/enable_CAN_TX_CCVS1_CAN3' */
23684 if (L4_MABX_P.enable_CAN_TX_CCVS1_CAN3_Value > 0.0) {
23685 /* S-Function (rti_commonblock): '<S1022>/S-Function1' */
23686 /* This comment workarounds a code generation problem */
23687
23688 /* dSPACE RTICAN TX Message Block: "CCVS1_E3" Id:419361251 */
23689 {
23690 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
23691
23692 Float32 delayTime = 0.0;
23693
23694 /* ... Read status and timestamp info (previous message) */
23695 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]);
23696
23697 /* Convert timestamp */
23698 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->processed) {
23699 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp =
23700 rtk_dsts_time_to_simtime_convert
23701 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp);
23702 }
23703
23704 /* Messages with timestamp zero have been received in pause/stop state
23705 and must not be handled.
23706 */
23707 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp > 0.0) {
23708 L4_MABX_B.SFunction1_o1_m = (real_T)
23709 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->processed;
23710 L4_MABX_B.SFunction1_o2_c = (real_T)
23711 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->timestamp;
23712 L4_MABX_B.SFunction1_o3_g2 = (real_T)
23713 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->deltatime;
23714 L4_MABX_B.SFunction1_o4_mj = (real_T)
23715 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3]->delaytime;
23716 }
23717
23718 /* ... Encode Simulink signals of TX and RM blocks*/
23719 {
23720 rtican_Signal_t CAN_Sgn;
23721
23722 /* ...... "SPN69_TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
23723 /* Add or substract 0.5 in order to round to nearest integer */
23724 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TwoSpeedAxleSwitch ) + 0.5);
23725 CAN_Sgn.UnsignedSgn &= 0x00000003;
23726 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23727
23728 /* ...... "SPN70_ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
23729 /* Add or substract 0.5 in order to round to nearest integer */
23730 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingBrakeSwitch ) + 0.5);
23731 CAN_Sgn.UnsignedSgn &= 0x00000003;
23732 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23733 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23734
23735 /* ...... "SPN1633_CruiseControlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
23736 /* Add or substract 0.5 in order to round to nearest integer */
23737 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlPauseSwitch ) +
23738 0.5);
23739 CAN_Sgn.UnsignedSgn &= 0x00000003;
23740 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23741 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23742
23743 /* ...... "SPN3807_ParkBrakeReleaseInhReq" (6|2, standard signal, unsigned int, little endian) */
23744 /* Add or substract 0.5 in order to round to nearest integer */
23745 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkBrakeReleaseInhibitRq )
23746 + 0.5);
23747 CAN_Sgn.UnsignedSgn &= 0x00000003;
23748 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23749 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23750
23751 /* ...... "SPN84_WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
23752 /* Add or substract 0.5 in order to round to nearest integer */
23753 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.WheelBasedVehicleSpeed_g - (
23754 0 ) ) / 0.00390625 + 0.5);
23755 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
23756 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
23757 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
23758
23759 /* ...... "SPN595_CruiseControlActive" (24|2, standard signal, unsigned int, little endian) */
23760 /* Add or substract 0.5 in order to round to nearest integer */
23761 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlActive ) + 0.5);
23762 CAN_Sgn.UnsignedSgn &= 0x00000003;
23763 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23764
23765 /* ...... "SPN596_CruiseControlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
23766 /* Add or substract 0.5 in order to round to nearest integer */
23767 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlEnableSwitch_k ) +
23768 0.5);
23769 CAN_Sgn.UnsignedSgn &= 0x00000003;
23770 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23771 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23772
23773 /* ...... "SPN597_BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
23774 /* Add or substract 0.5 in order to round to nearest integer */
23775 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakeSwitch_e ) + 0.5);
23776 CAN_Sgn.UnsignedSgn &= 0x00000003;
23777 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23778 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23779
23780 /* ...... "SPN598_ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
23781 /* Add or substract 0.5 in order to round to nearest integer */
23782 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ClutchSwitch ) + 0.5);
23783 CAN_Sgn.UnsignedSgn &= 0x00000003;
23784 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23785 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23786
23787 /* ...... "SPN599_CruiseControlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
23788 /* Add or substract 0.5 in order to round to nearest integer */
23789 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSwitch ) + 0.5);
23790 CAN_Sgn.UnsignedSgn &= 0x00000003;
23791 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23792
23793 /* ...... "SPN600_CruiseControlCoastDecelSw" (34|2, standard signal, unsigned int, little endian) */
23794 /* Add or substract 0.5 in order to round to nearest integer */
23795 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlCoastSwitch ) +
23796 0.5);
23797 CAN_Sgn.UnsignedSgn &= 0x00000003;
23798 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23799 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23800
23801 /* ...... "SPN601_CruiseControlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
23802 /* Add or substract 0.5 in order to round to nearest integer */
23803 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlResumeSwitch ) +
23804 0.5);
23805 CAN_Sgn.UnsignedSgn &= 0x00000003;
23806 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23807 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23808
23809 /* ...... "SPN602_CruiseControlAccelerateSw" (38|2, standard signal, unsigned int, little endian) */
23810 /* Add or substract 0.5 in order to round to nearest integer */
23811 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlAccelerateSwitch )
23812 + 0.5);
23813 CAN_Sgn.UnsignedSgn &= 0x00000003;
23814 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23815 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
23816
23817 /* ...... "SPN86_CruiseControlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
23818 /* Add or substract 0.5 in order to round to nearest integer */
23819 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSpeed ) + 0.5);
23820 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23821 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
23822
23823 /* ...... "SPN976_PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
23824 /* Add or substract 0.5 in order to round to nearest integer */
23825 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PTOGovernorState ) + 0.5);
23826 CAN_Sgn.UnsignedSgn &= 0x0000001F;
23827 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23828
23829 /* ...... "SPN527_CruiseControlStates" (53|3, standard signal, unsigned int, little endian) */
23830 /* Add or substract 0.5 in order to round to nearest integer */
23831 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlStates ) + 0.5);
23832 CAN_Sgn.UnsignedSgn &= 0x00000007;
23833 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 5;
23834 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
23835
23836 /* ...... "SPN968_EngIdleIncrementSw" (56|2, standard signal, unsigned int, little endian) */
23837 /* Add or substract 0.5 in order to round to nearest integer */
23838 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleIncrementSwitch ) +
23839 0.5);
23840 CAN_Sgn.UnsignedSgn &= 0x00000003;
23841 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23842
23843 /* ...... "SPN967_EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
23844 /* Add or substract 0.5 in order to round to nearest integer */
23845 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleDecrementSwitch ) +
23846 0.5);
23847 CAN_Sgn.UnsignedSgn &= 0x00000003;
23848 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23849 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23850
23851 /* ...... "SPN966_EngDiagTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
23852 /* Add or substract 0.5 in order to round to nearest integer */
23853 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngTestModeSwitch ) + 0.5);
23854 CAN_Sgn.UnsignedSgn &= 0x00000003;
23855 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23856 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23857
23858 /* ...... "SPN1237_EngShutdownOvrdSwitch" (62|2, standard signal, unsigned int, little endian) */
23859 /* Add or substract 0.5 in order to round to nearest integer */
23860 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngShutdownOverrideSwitch )
23861 + 0.5);
23862 CAN_Sgn.UnsignedSgn &= 0x00000003;
23863 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23864 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
23865 }
23866
23867 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
23868 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3], 8,
23869 &(CAN_Msg[0]), delayTime);
23870 }
23871 }
23872
23873 /* End of Constant: '<S824>/enable_CAN_TX_CCVS1_CAN3' */
23874 /* End of Outputs for SubSystem: '<S1020>/CCVS1_E3' */
23875
23876 /* Outputs for Enabled SubSystem: '<S1021>/TC1_03_05' incorporates:
23877 * EnablePort: '<S1023>/Enable'
23878 */
23879 /* Constant: '<S1021>/CANT_TC1_03_05_APV' */
23880 if (L4_MABX_P.CANT_TC1_03_05_APV_Value) {
23881 /* S-Function (rti_commonblock): '<S1023>/S-Function1' */
23882 /* This comment workarounds a code generation problem */
23883
23884 /* dSPACE RTICAN TX Message Block: "TC1_03_05" Id:201392901 */
23885 {
23886 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
23887
23888 Float32 delayTime = 0.0;
23889
23890 /* ... Read status and timestamp info (previous message) */
23891 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]);
23892
23893 /* Convert timestamp */
23894 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->processed) {
23895 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp =
23896 rtk_dsts_time_to_simtime_convert
23897 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp);
23898 }
23899
23900 /* Messages with timestamp zero have been received in pause/stop state
23901 and must not be handled.
23902 */
23903 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp > 0.0) {
23904 L4_MABX_B.SFunction1_o1_d = (real_T)
23905 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->processed;
23906 L4_MABX_B.SFunction1_o2_m = (real_T)
23907 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->timestamp;
23908 L4_MABX_B.SFunction1_o3_j = (real_T)
23909 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->deltatime;
23910 L4_MABX_B.SFunction1_o4_m = (real_T)
23911 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305]->delaytime;
23912 }
23913
23914 /* ... Encode Simulink signals of TX and RM blocks*/
23915 {
23916 rtican_Signal_t CAN_Sgn;
23917
23918 /* ...... "SPN681_TransGearShiftInhibitReq" (0|2, standard signal, unsigned int, little endian) */
23919 /* Add or substract 0.5 in order to round to nearest integer */
23920 CAN_Sgn.UnsignedSgn = (UInt32)
23921 (( L4_MABX_B.SPN681_TransGearShiftInhibitReq ) + 0.5);
23922 CAN_Sgn.UnsignedSgn &= 0x00000003;
23923 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23924
23925 /* ...... "SPN682_TransTrqConvLockupDisReq" (2|2, standard signal, unsigned int, little endian) */
23926 /* Add or substract 0.5 in order to round to nearest integer */
23927 CAN_Sgn.UnsignedSgn = (UInt32)
23928 (( L4_MABX_B.SPN682_TransTrqConvLockupDisReq ) + 0.5);
23929 CAN_Sgn.UnsignedSgn &= 0x00000003;
23930 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23931 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23932
23933 /* ...... "SPN683_DisengageDrivelineReq" (4|2, standard signal, unsigned int, little endian) */
23934 /* Add or substract 0.5 in order to round to nearest integer */
23935 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN683_DisengageDrivelineReq
23936 ) + 0.5);
23937 CAN_Sgn.UnsignedSgn &= 0x00000003;
23938 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23939 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23940
23941 /* ...... "SPN4242_TransRevGearShiftInhibRq" (6|2, standard signal, unsigned int, little endian) */
23942 /* Add or substract 0.5 in order to round to nearest integer */
23943 CAN_Sgn.UnsignedSgn = (UInt32)
23944 (( L4_MABX_B.SPN4242_TransRevGearShiftInhibR ) + 0.5);
23945 CAN_Sgn.UnsignedSgn &= 0x00000003;
23946 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23947 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
23948
23949 /* ...... "SPN684_RequestedPercClutchSlip" (8|8, standard signal, unsigned int, little endian) */
23950 /* Add or substract 0.5 in order to round to nearest integer */
23951 CAN_Sgn.UnsignedSgn = (UInt32)
23952 (( L4_MABX_B.SPN684_RequestedPercClutchSlip - ( 0 ) ) / 0.4 + 0.5);
23953 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23954 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
23955
23956 /* ...... "SPN525_TransRequestedGear" (16|8, standard signal, unsigned int, little endian) */
23957 /* Add or substract 0.5 in order to round to nearest integer */
23958 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.SPN525_TransRequestedGear - (
23959 -125 ) + 0.5);
23960 CAN_Sgn.UnsignedSgn &= 0x000000FF;
23961 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
23962
23963 /* ...... "SPN685_DisengageDiffLockRqFrAx1" (24|2, standard signal, unsigned int, little endian) */
23964 /* Add or substract 0.5 in order to round to nearest integer */
23965 CAN_Sgn.UnsignedSgn = (UInt32)
23966 (( L4_MABX_B.SPN685_DisengageDiffLockRqFrAx1 ) + 0.5);
23967 CAN_Sgn.UnsignedSgn &= 0x00000003;
23968 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23969
23970 /* ...... "SPN686_DisengageDiffLockRqFrAx2" (26|2, standard signal, unsigned int, little endian) */
23971 /* Add or substract 0.5 in order to round to nearest integer */
23972 CAN_Sgn.UnsignedSgn = (UInt32)
23973 (( L4_MABX_B.SPN686_DisengageDiffLockRqFrAx2 ) + 0.5);
23974 CAN_Sgn.UnsignedSgn &= 0x00000003;
23975 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
23976 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23977
23978 /* ...... "SPN687_DisengageDiffLockRqRrAx1" (28|2, standard signal, unsigned int, little endian) */
23979 /* Add or substract 0.5 in order to round to nearest integer */
23980 CAN_Sgn.UnsignedSgn = (UInt32)
23981 (( L4_MABX_B.SPN687_DisengageDiffLockRqRrAx1 ) + 0.5);
23982 CAN_Sgn.UnsignedSgn &= 0x00000003;
23983 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
23984 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23985
23986 /* ...... "SPN688_DisengageDiffLockRqRrAx2" (30|2, standard signal, unsigned int, little endian) */
23987 /* Add or substract 0.5 in order to round to nearest integer */
23988 CAN_Sgn.UnsignedSgn = (UInt32)
23989 (( L4_MABX_B.SPN688_DisengageDiffLockRqRrAx2 ) + 0.5);
23990 CAN_Sgn.UnsignedSgn &= 0x00000003;
23991 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
23992 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
23993
23994 /* ...... "SPN689_DisengageDiffLockRqC" (32|2, standard signal, unsigned int, little endian) */
23995 /* Add or substract 0.5 in order to round to nearest integer */
23996 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN689_DisengageDiffLockRqC )
23997 + 0.5);
23998 CAN_Sgn.UnsignedSgn &= 0x00000003;
23999 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24000
24001 /* ...... "SPN690_DisengageDiffLockRqCF" (34|2, standard signal, unsigned int, little endian) */
24002 /* Add or substract 0.5 in order to round to nearest integer */
24003 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN690_DisengageDiffLockRqCF
24004 ) + 0.5);
24005 CAN_Sgn.UnsignedSgn &= 0x00000003;
24006 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24007 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24008
24009 /* ...... "SPN691_DisengageDiffLockRqCR" (36|2, standard signal, unsigned int, little endian) */
24010 /* Add or substract 0.5 in order to round to nearest integer */
24011 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN691_DisengageDiffLockRqCR
24012 ) + 0.5);
24013 CAN_Sgn.UnsignedSgn &= 0x00000003;
24014 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24015 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24016
24017 /* ...... "SPN5762_TransLoadRedInhibitRq" (38|2, standard signal, unsigned int, little endian) */
24018 /* Add or substract 0.5 in order to round to nearest integer */
24019 CAN_Sgn.UnsignedSgn = (UInt32)
24020 (( L4_MABX_B.SPN5762_TransLoadRedInhibitRq ) + 0.5);
24021 CAN_Sgn.UnsignedSgn &= 0x00000003;
24022 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24023 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24024
24025 /* ...... "SPN1852_TransmissionMode1" (40|2, standard signal, unsigned int, little endian) */
24026 /* Add or substract 0.5 in order to round to nearest integer */
24027 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1852_TransmissionMode1 )
24028 + 0.5);
24029 CAN_Sgn.UnsignedSgn &= 0x00000003;
24030 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24031
24032 /* ...... "SPN1853_TransmissionMode2" (42|2, standard signal, unsigned int, little endian) */
24033 /* Add or substract 0.5 in order to round to nearest integer */
24034 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1853_TransmissionMode2 )
24035 + 0.5);
24036 CAN_Sgn.UnsignedSgn &= 0x00000003;
24037 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24038 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24039
24040 /* ...... "SPN1854_TransmissionMode3" (44|2, standard signal, unsigned int, little endian) */
24041 /* Add or substract 0.5 in order to round to nearest integer */
24042 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1854_TransmissionMode3 )
24043 + 0.5);
24044 CAN_Sgn.UnsignedSgn &= 0x00000003;
24045 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24046 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24047
24048 /* ...... "SPN1855_TransmissionMode4" (46|2, standard signal, unsigned int, little endian) */
24049 /* Add or substract 0.5 in order to round to nearest integer */
24050 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN1855_TransmissionMode4 )
24051 + 0.5);
24052 CAN_Sgn.UnsignedSgn &= 0x00000003;
24053 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24054 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24055
24056 /* ...... "SPN7695_TransAutoNeutralRequest" (48|2, standard signal, unsigned int, little endian) */
24057 /* Add or substract 0.5 in order to round to nearest integer */
24058 CAN_Sgn.UnsignedSgn = (UInt32)
24059 (( L4_MABX_B.SPN7695_TransAutoNeutralRequest ) + 0.5);
24060 CAN_Sgn.UnsignedSgn &= 0x00000003;
24061 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24062
24063 /* ...... "SPN4255_TransRequestedLaunchGear" (50|4, standard signal, unsigned int, little endian) */
24064 /* Add or substract 0.5 in order to round to nearest integer */
24065 CAN_Sgn.UnsignedSgn = (UInt32)
24066 (( L4_MABX_B.SPN4255_TransRequestedLaunchGea ) + 0.5);
24067 CAN_Sgn.UnsignedSgn &= 0x0000000F;
24068 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24069 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24070
24071 /* ...... "SPN2985_TransShiftSelDispModeSw" (54|2, standard signal, unsigned int, little endian) */
24072 /* Add or substract 0.5 in order to round to nearest integer */
24073 CAN_Sgn.UnsignedSgn = (UInt32)
24074 (( L4_MABX_B.SPN2985_TransShiftSelDispModeSw ) + 0.5);
24075 CAN_Sgn.UnsignedSgn &= 0x00000003;
24076 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24077 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24078
24079 /* ...... "SPN4246_TransmissionMode5" (56|2, standard signal, unsigned int, little endian) */
24080 /* Add or substract 0.5 in order to round to nearest integer */
24081 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4246_TransmissionMode5 )
24082 + 0.5);
24083 CAN_Sgn.UnsignedSgn &= 0x00000003;
24084 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24085
24086 /* ...... "SPN4247_TransmissionMode6" (58|2, standard signal, unsigned int, little endian) */
24087 /* Add or substract 0.5 in order to round to nearest integer */
24088 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4247_TransmissionMode6 )
24089 + 0.5);
24090 CAN_Sgn.UnsignedSgn &= 0x00000003;
24091 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24092 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24093
24094 /* ...... "SPN4248_TransmissionMode7" (60|2, standard signal, unsigned int, little endian) */
24095 /* Add or substract 0.5 in order to round to nearest integer */
24096 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4248_TransmissionMode7 )
24097 + 0.5);
24098 CAN_Sgn.UnsignedSgn &= 0x00000003;
24099 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24100 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24101
24102 /* ...... "SPN4249_TransmissionMode8" (62|2, standard signal, unsigned int, little endian) */
24103 /* Add or substract 0.5 in order to round to nearest integer */
24104 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.SPN4249_TransmissionMode8 )
24105 + 0.5);
24106 CAN_Sgn.UnsignedSgn &= 0x00000003;
24107 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24108 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24109 }
24110
24111 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24112 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305], 8,
24113 &(CAN_Msg[0]), delayTime);
24114 }
24115 }
24116
24117 /* End of Constant: '<S1021>/CANT_TC1_03_05_APV' */
24118 /* End of Outputs for SubSystem: '<S1021>/TC1_03_05' */
24119
24120 /* End of Outputs for SubSystem: '<S815>/CAN_TX_50ms' */
24121 /* user code (Output function Trailer for TID2) */
24122
24123 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
24124 /* EventChannel: 0 */
24125 if (tid == 0) {
24126 DSXCP_service(0);
24127 }
24128
24129 /* If subsystem generates rate grouping Output functions,
24130 * when tid is used in Output function for one rate,
24131 * all Output functions include tid as a local variable.
24132 * As result, some Output functions may have unused tid.
24133 */
24134 UNUSED_PARAMETER(tid);
24135}
24136
24137/* Model update function for TID2 */
24138void L4_MABX_update2(void) /* Sample time: [0.05s, 0.0s] */
24139{
24140 /* (no update code required) */
24141}
24142
24143/* Model output function for TID3 */
24144void L4_MABX_output3(void) /* Sample time: [0.1s, 0.0s] */
24145{
24146 int_T tid = 3;
24147 uint16_T tmp;
24148 uint32_T tmp_0;
24149 uint8_T tmp_1;
24150 real_T tmp_2;
24151
24152 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_100ms' */
24153
24154 /* DataTypeConversion: '<S852>/Data Type Conversion' incorporates:
24155 * Constant: '<S819>/PROPB_XPR_INHIBIT_PARK_MANUAL_APV'
24156 */
24157 L4_MABX_B.DataTypeConversion_kb = (uint8_T)
24158 L4_MABX_P.PROPB_XPR_INHIBIT_PARK_MANUAL_A;
24159
24160 /* S-Function (sfix_bitop): '<S884>/Operator' */
24161 L4_MABX_B.Operator_mt4 = (uint8_T)(L4_MABX_B.DataTypeConversion_kb &
24162 L4_MABX_P.Operator_BitMask_j);
24163
24164 /* DataTypeConversion: '<S884>/DataType' */
24165 L4_MABX_B.DataType_of = L4_MABX_B.Operator_mt4;
24166
24167 /* DataTypeConversion: '<S852>/Data Type Conversion2' incorporates:
24168 * Constant: '<S819>/PROPB_XPR_INHIBIT_UNPARK_MANUAL_APV'
24169 */
24170 L4_MABX_B.DataTypeConversion2_nh = (uint8_T)
24171 L4_MABX_P.PROPB_XPR_INHIBIT_UNPARK_MANUAL;
24172
24173 /* S-Function (sfix_bitop): '<S886>/Operator' */
24174 L4_MABX_B.Operator_gr = (uint8_T)(L4_MABX_B.DataTypeConversion2_nh &
24175 L4_MABX_P.Operator_BitMask_n);
24176
24177 /* DataTypeConversion: '<S886>/DataType' */
24178 L4_MABX_B.DataType_ds = L4_MABX_B.Operator_gr;
24179
24180 /* ArithShift: '<S852>/Shift_Arithmetic ' */
24181 L4_MABX_B.Shift_Arithmetic_h = (uint8_T)(L4_MABX_B.DataType_ds << 2);
24182
24183 /* DataTypeConversion: '<S852>/Data Type Conversion4' incorporates:
24184 * Constant: '<S819>/PROPB_XPR_PARK_MANUAL_APV'
24185 */
24186 L4_MABX_B.DataTypeConversion4_m = (uint8_T)
24187 L4_MABX_P.PROPB_XPR_PARK_MANUAL_APV_Value;
24188
24189 /* S-Function (sfix_bitop): '<S887>/Operator' */
24190 L4_MABX_B.Operator_ld = (uint8_T)(L4_MABX_B.DataTypeConversion4_m &
24191 L4_MABX_P.Operator_BitMask_oq);
24192
24193 /* DataTypeConversion: '<S887>/DataType' */
24194 L4_MABX_B.DataType_e0 = L4_MABX_B.Operator_ld;
24195
24196 /* ArithShift: '<S852>/Shift_Arithmetic 1' */
24197 L4_MABX_B.Shift_Arithmetic1_jb = (uint8_T)(L4_MABX_B.DataType_e0 << 4);
24198
24199 /* DataTypeConversion: '<S852>/Data Type Conversion5' incorporates:
24200 * Constant: '<S819>/PROPB_XPR_UNPARK_MANUAL_APV'
24201 */
24202 L4_MABX_B.DataTypeConversion5_c = (uint8_T)
24203 L4_MABX_P.PROPB_XPR_UNPARK_MANUAL_APV_Val;
24204
24205 /* S-Function (sfix_bitop): '<S885>/Operator' */
24206 L4_MABX_B.Operator_me = (uint8_T)(L4_MABX_B.DataTypeConversion5_c &
24207 L4_MABX_P.Operator_BitMask_e);
24208
24209 /* DataTypeConversion: '<S885>/DataType' */
24210 L4_MABX_B.DataType_e0l = L4_MABX_B.Operator_me;
24211
24212 /* ArithShift: '<S852>/Shift_Arithmetic 2' */
24213 L4_MABX_B.Shift_Arithmetic2_dp = (uint8_T)(L4_MABX_B.DataType_e0l << 6);
24214
24215 /* S-Function (sfix_bitop): '<S892>/Operator' */
24216 L4_MABX_B.Operator_df = (uint8_T)(L4_MABX_B.DataType_of |
24217 L4_MABX_B.Shift_Arithmetic_h | L4_MABX_B.Shift_Arithmetic1_jb |
24218 L4_MABX_B.Shift_Arithmetic2_dp);
24219
24220 /* DataTypeConversion: '<S892>/DataType' */
24221 L4_MABX_B.DataType_jg = L4_MABX_B.Operator_df;
24222
24223 /* Outputs for Enabled SubSystem: '<S852>/Rolling_15_counter' incorporates:
24224 * EnablePort: '<S894>/Enable'
24225 */
24226 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_R) {
24227 /* UnitDelay: '<S894>/Unit_Delay' */
24228 L4_MABX_B.Unit_Delay = L4_MABX_DW.Unit_Delay_DSTATE;
24229
24230 /* Sum: '<S902>/FixPt Sum1' incorporates:
24231 * Constant: '<S902>/FixPt Constant'
24232 */
24233 L4_MABX_B.FixPtSum1_ct = L4_MABX_B.Unit_Delay +
24234 L4_MABX_P.FixPtConstant_Value;
24235
24236 /* Switch: '<S903>/FixPt Switch' incorporates:
24237 * Constant: '<S903>/Constant'
24238 */
24239 if (L4_MABX_B.FixPtSum1_ct > L4_MABX_P.WrapToZero1_Threshold) {
24240 L4_MABX_B.FixPtSwitch = L4_MABX_P.Constant_Value_b;
24241 } else {
24242 L4_MABX_B.FixPtSwitch = L4_MABX_B.FixPtSum1_ct;
24243 }
24244
24245 /* End of Switch: '<S903>/FixPt Switch' */
24246 }
24247
24248 /* End of Outputs for SubSystem: '<S852>/Rolling_15_counter' */
24249
24250 /* DataTypeConversion: '<S852>/Data Type Conversion1' */
24251 tmp_2 = L4_MABX_B.Unit_Delay;
24252 if (tmp_2 < 256.0) {
24253 if (tmp_2 >= 0.0) {
24254 tmp_1 = (uint8_T)tmp_2;
24255 } else {
24256 tmp_1 = 0U;
24257 }
24258 } else {
24259 tmp_1 = MAX_uint8_T;
24260 }
24261
24262 L4_MABX_B.DataTypeConversion1_mu = tmp_1;
24263
24264 /* End of DataTypeConversion: '<S852>/Data Type Conversion1' */
24265
24266 /* S-Function (sfix_bitop): '<S888>/Operator' */
24267 L4_MABX_B.Operator_eb = (uint8_T)(L4_MABX_B.DataTypeConversion1_mu &
24268 L4_MABX_P.Operator_BitMask_ov);
24269
24270 /* DataTypeConversion: '<S888>/DataType' */
24271 L4_MABX_B.DataType_iy = L4_MABX_B.Operator_eb;
24272
24273 /* DataTypeConversion: '<S891>/Data Type Conversion' incorporates:
24274 * Constant: '<S891>/Priority'
24275 */
24276 L4_MABX_B.DataTypeConversion_pr = L4_MABX_P.Priority_Value;
24277
24278 /* ArithShift: '<S891>/Shift_Arithmetic ' */
24279 L4_MABX_B.Shift_Arithmetic_p = L4_MABX_B.DataTypeConversion_pr << 26;
24280
24281 /* DataTypeConversion: '<S891>/Data Type Conversion1' incorporates:
24282 * Constant: '<S891>/ExtendedDataPage'
24283 */
24284 L4_MABX_B.DataTypeConversion1_am = L4_MABX_P.ExtendedDataPage_Value;
24285
24286 /* ArithShift: '<S891>/Shift_Arithmetic 1' */
24287 L4_MABX_B.Shift_Arithmetic1_e = L4_MABX_B.DataTypeConversion1_am << 25;
24288
24289 /* DataTypeConversion: '<S891>/Data Type Conversion2' incorporates:
24290 * Constant: '<S891>/DataPage'
24291 */
24292 L4_MABX_B.DataTypeConversion2_fy = L4_MABX_P.DataPage_Value;
24293
24294 /* ArithShift: '<S891>/Shift_Arithmetic 2' */
24295 L4_MABX_B.Shift_Arithmetic2_be = L4_MABX_B.DataTypeConversion2_fy << 24;
24296
24297 /* DataTypeConversion: '<S891>/Data Type Conversion3' incorporates:
24298 * Constant: '<S891>/PDUFormat'
24299 */
24300 L4_MABX_B.DataTypeConversion3_eg = L4_MABX_P.PDUFormat_Value;
24301
24302 /* ArithShift: '<S891>/Shift_Arithmetic 3' */
24303 L4_MABX_B.Shift_Arithmetic3_pv = L4_MABX_B.DataTypeConversion3_eg << 16;
24304
24305 /* DataTypeConversion: '<S891>/Data Type Conversion4' incorporates:
24306 * Constant: '<S891>/PDUSpecific'
24307 */
24308 L4_MABX_B.DataTypeConversion4_f = L4_MABX_P.PDUSpecific_Value;
24309
24310 /* ArithShift: '<S891>/Shift_Arithmetic 4' */
24311 L4_MABX_B.Shift_Arithmetic4_o4 = L4_MABX_B.DataTypeConversion4_f << 8;
24312
24313 /* DataTypeConversion: '<S891>/Data Type Conversion5' incorporates:
24314 * Constant: '<S891>/SourceAddress'
24315 */
24316 L4_MABX_B.DataTypeConversion5_ip = L4_MABX_P.SourceAddress_Value;
24317
24318 /* S-Function (sfix_bitop): '<S901>/Operator' */
24319 L4_MABX_B.Operator_j1 = L4_MABX_B.Shift_Arithmetic_p |
24320 L4_MABX_B.Shift_Arithmetic1_e | L4_MABX_B.Shift_Arithmetic2_be |
24321 L4_MABX_B.Shift_Arithmetic3_pv | L4_MABX_B.Shift_Arithmetic4_o4 |
24322 L4_MABX_B.DataTypeConversion5_ip;
24323
24324 /* DataTypeConversion: '<S901>/DataType' */
24325 L4_MABX_B.DataType_p4 = L4_MABX_B.Operator_j1;
24326
24327 /* DataTypeConversion: '<S890>/Data Type Conversion8' */
24328 L4_MABX_B.DataTypeConversion8_f = L4_MABX_B.DataType_p4;
24329
24330 /* S-Function (sfix_bitop): '<S897>/Operator' */
24331 L4_MABX_B.Operator_dd = L4_MABX_B.DataTypeConversion8_f &
24332 L4_MABX_P.Operator_BitMask_hi;
24333
24334 /* DataTypeConversion: '<S897>/DataType' */
24335 tmp_0 = L4_MABX_B.Operator_dd;
24336 if (tmp_0 > 255U) {
24337 tmp_0 = 255U;
24338 }
24339
24340 L4_MABX_B.DataType_ef = (uint8_T)tmp_0;
24341
24342 /* End of DataTypeConversion: '<S897>/DataType' */
24343
24344 /* S-Function (sfix_bitop): '<S898>/Operator' */
24345 L4_MABX_B.Operator_h = L4_MABX_B.DataTypeConversion8_f &
24346 L4_MABX_P.Operator_BitMask_g0;
24347
24348 /* DataTypeConversion: '<S898>/DataType' */
24349 tmp_0 = L4_MABX_B.Operator_h;
24350 if (tmp_0 > 65535U) {
24351 tmp_0 = 65535U;
24352 }
24353
24354 L4_MABX_B.DataType_oza = (uint16_T)tmp_0;
24355
24356 /* End of DataTypeConversion: '<S898>/DataType' */
24357
24358 /* ArithShift: '<S890>/Shift_Arithmetic 3' */
24359 L4_MABX_B.Shift_Arithmetic3_i = (uint16_T)((uint32_T)L4_MABX_B.DataType_oza >>
24360 8);
24361
24362 /* DataTypeConversion: '<S890>/Data Type Conversion9' */
24363 tmp = L4_MABX_B.Shift_Arithmetic3_i;
24364 if (tmp > 255) {
24365 tmp = 255U;
24366 }
24367
24368 L4_MABX_B.MessageIDMidLowByte = (uint8_T)tmp;
24369
24370 /* End of DataTypeConversion: '<S890>/Data Type Conversion9' */
24371
24372 /* S-Function (sfix_bitop): '<S899>/Operator' */
24373 L4_MABX_B.Operator_kg = L4_MABX_B.DataTypeConversion8_f &
24374 L4_MABX_P.Operator_BitMask_ba;
24375
24376 /* DataTypeConversion: '<S899>/DataType' */
24377 L4_MABX_B.DataType_dh = L4_MABX_B.Operator_kg;
24378
24379 /* ArithShift: '<S890>/Shift_Arithmetic 4' */
24380 L4_MABX_B.Shift_Arithmetic4_h = L4_MABX_B.DataType_dh >> 16;
24381
24382 /* DataTypeConversion: '<S890>/Data Type Conversion10' */
24383 tmp_0 = L4_MABX_B.Shift_Arithmetic4_h;
24384 if (tmp_0 > 255U) {
24385 tmp_0 = 255U;
24386 }
24387
24388 L4_MABX_B.MessageIDMidHighByte = (uint8_T)tmp_0;
24389
24390 /* End of DataTypeConversion: '<S890>/Data Type Conversion10' */
24391
24392 /* S-Function (sfix_bitop): '<S900>/Operator' */
24393 L4_MABX_B.Operator_hw = L4_MABX_B.DataTypeConversion8_f &
24394 L4_MABX_P.Operator_BitMask_i2;
24395
24396 /* DataTypeConversion: '<S900>/DataType' */
24397 L4_MABX_B.DataType_fo = L4_MABX_B.Operator_hw;
24398
24399 /* ArithShift: '<S890>/Shift_Arithmetic 5' */
24400 L4_MABX_B.Shift_Arithmetic5_c = L4_MABX_B.DataType_fo >> 24;
24401
24402 /* DataTypeConversion: '<S890>/Data Type Conversion11' */
24403 tmp_0 = L4_MABX_B.Shift_Arithmetic5_c;
24404 if (tmp_0 > 255U) {
24405 tmp_0 = 255U;
24406 }
24407
24408 L4_MABX_B.MessageIDHighByte = (uint8_T)tmp_0;
24409
24410 /* End of DataTypeConversion: '<S890>/Data Type Conversion11' */
24411
24412 /* DataTypeConversion: '<S890>/Data Type Conversion13' */
24413 tmp_2 = L4_MABX_B.Unit_Delay;
24414 if (tmp_2 < 256.0) {
24415 if (tmp_2 >= 0.0) {
24416 tmp_1 = (uint8_T)tmp_2;
24417 } else {
24418 tmp_1 = 0U;
24419 }
24420 } else {
24421 tmp_1 = MAX_uint8_T;
24422 }
24423
24424 L4_MABX_B.DataTypeConversion13_h = tmp_1;
24425
24426 /* End of DataTypeConversion: '<S890>/Data Type Conversion13' */
24427
24428 /* S-Function (sfix_bitop): '<S896>/Operator' */
24429 L4_MABX_B.Operator_f0 = (uint8_T)(L4_MABX_B.DataTypeConversion13_h &
24430 L4_MABX_P.Operator_BitMask_eh);
24431
24432 /* DataTypeConversion: '<S896>/DataType' */
24433 L4_MABX_B.DataType_jr = L4_MABX_B.Operator_f0;
24434
24435 /* Sum: '<S890>/Add' incorporates:
24436 * Constant: '<S852>/Constant3'
24437 */
24438 L4_MABX_B.Checksum = (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
24439 ((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)
24440 (uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)((uint32_T)(uint8_T)
24441 ((uint32_T)(uint8_T)((uint32_T)L4_MABX_B.DataType_jg +
24442 L4_MABX_P.Constant3_Value_k) + L4_MABX_P.Constant3_Value_k) +
24443 L4_MABX_P.Constant3_Value_k) + L4_MABX_P.Constant3_Value_k) +
24444 L4_MABX_P.Constant3_Value_k) + L4_MABX_P.Constant3_Value_k) +
24445 L4_MABX_B.DataType_ef) + L4_MABX_B.MessageIDMidLowByte) +
24446 L4_MABX_B.MessageIDMidHighByte) + L4_MABX_B.MessageIDHighByte) +
24447 L4_MABX_B.DataType_jr);
24448
24449 /* ArithShift: '<S890>/Shift_Arithmetic 7' */
24450 L4_MABX_B.Shift_Arithmetic7_ey = (uint8_T)((uint32_T)L4_MABX_B.Checksum >> 4);
24451
24452 /* Sum: '<S890>/Add1' */
24453 L4_MABX_B.Add1_l = (uint8_T)((uint32_T)L4_MABX_B.Shift_Arithmetic7_ey +
24454 L4_MABX_B.Checksum);
24455
24456 /* S-Function (sfix_bitop): '<S895>/Operator' */
24457 L4_MABX_B.Operator_mn = (uint8_T)(L4_MABX_B.Add1_l &
24458 L4_MABX_P.Operator_BitMask_lq);
24459
24460 /* DataTypeConversion: '<S895>/DataType' */
24461 L4_MABX_B.DataType_m4 = L4_MABX_B.Operator_mn;
24462
24463 /* DataTypeConversion: '<S852>/Data Type Conversion3' */
24464 L4_MABX_B.DataTypeConversion3_lo = L4_MABX_B.DataType_m4;
24465
24466 /* S-Function (sfix_bitop): '<S889>/Operator' */
24467 L4_MABX_B.Operator_el = (uint8_T)(L4_MABX_B.DataTypeConversion3_lo &
24468 L4_MABX_P.Operator_BitMask_jb);
24469
24470 /* DataTypeConversion: '<S889>/DataType' */
24471 L4_MABX_B.DataType_jng = L4_MABX_B.Operator_el;
24472
24473 /* ArithShift: '<S852>/Shift_Arithmetic 3' */
24474 L4_MABX_B.Shift_Arithmetic3_jy = (uint8_T)(L4_MABX_B.DataType_jng << 4);
24475
24476 /* S-Function (sfix_bitop): '<S893>/Operator' */
24477 L4_MABX_B.Operator_bq = (uint8_T)(L4_MABX_B.DataType_iy |
24478 L4_MABX_B.Shift_Arithmetic3_jy);
24479
24480 /* DataTypeConversion: '<S893>/DataType' */
24481 L4_MABX_B.DataType_ja = L4_MABX_B.Operator_bq;
24482
24483 /* DataTypeConversion: '<S847>/Data Type Conversion1' incorporates:
24484 * Constant: '<S852>/Constant3'
24485 */
24486 L4_MABX_B.DataTypeConversion1_nd[0] = L4_MABX_B.DataType_jg;
24487 L4_MABX_B.DataTypeConversion1_nd[1] = L4_MABX_P.Constant3_Value_k;
24488 L4_MABX_B.DataTypeConversion1_nd[2] = L4_MABX_P.Constant3_Value_k;
24489 L4_MABX_B.DataTypeConversion1_nd[3] = L4_MABX_P.Constant3_Value_k;
24490 L4_MABX_B.DataTypeConversion1_nd[4] = L4_MABX_P.Constant3_Value_k;
24491 L4_MABX_B.DataTypeConversion1_nd[5] = L4_MABX_P.Constant3_Value_k;
24492 L4_MABX_B.DataTypeConversion1_nd[6] = L4_MABX_P.Constant3_Value_k;
24493 L4_MABX_B.DataTypeConversion1_nd[7] = L4_MABX_B.DataType_ja;
24494
24495 /* DataTypeConversion: '<S847>/Data Type Conversion' incorporates:
24496 * Constant: '<S819>/CANT_PROPB_XPR_FC_CHANNEL_APV'
24497 */
24498 L4_MABX_B.DataTypeConversion_mq = (uint8_T)
24499 L4_MABX_P.CANT_PROPB_XPR_FC_CHANNEL_APV_V;
24500
24501 /* S-Function (sfix_bitop): '<S862>/Operator' */
24502 L4_MABX_B.Operator_k3z = (uint8_T)(L4_MABX_B.DataTypeConversion_mq &
24503 L4_MABX_P.Operator_BitMask_a5);
24504
24505 /* DataTypeConversion: '<S862>/DataType' */
24506 L4_MABX_B.DataType_hz = L4_MABX_B.Operator_k3z;
24507
24508 /* DataTypeConversion: '<S847>/Data Type Conversion2' */
24509 L4_MABX_B.DataTypeConversion2_p0z = (L4_MABX_B.DataType_hz != 0);
24510
24511 /* Logic: '<S870>/Operator' */
24512 L4_MABX_B.Operator_kob = (L4_MABX_B.TmpRTBAtOperatorInport1 &&
24513 L4_MABX_B.DataTypeConversion2_p0z);
24514
24515 /* DataTypeConversion: '<S870>/DataType' */
24516 L4_MABX_B.DataType_kx = L4_MABX_B.Operator_kob;
24517
24518 /* Outputs for Enabled SubSystem: '<S874>/PropB_XPR_FC' incorporates:
24519 * EnablePort: '<S876>/Enable'
24520 */
24521 if (L4_MABX_B.DataType_kx) {
24522 /* S-Function (rti_commonblock): '<S876>/S-Function1' */
24523 /* This comment workarounds a code generation problem */
24524
24525 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
24526 {
24527 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24528
24529 Float32 delayTime = 0.0;
24530
24531 /* ... Read status and timestamp info (previous message) */
24532 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]);
24533
24534 /* Convert timestamp */
24535 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->processed) {
24536 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp =
24537 rtk_dsts_time_to_simtime_convert
24538 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp);
24539 }
24540
24541 /* Messages with timestamp zero have been received in pause/stop state
24542 and must not be handled.
24543 */
24544 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp > 0.0) {
24545 L4_MABX_B.SFunction1_o1_l = (real_T)
24546 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->processed;
24547 L4_MABX_B.SFunction1_o2_lm = (real_T)
24548 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->timestamp;
24549 L4_MABX_B.SFunction1_o3_ph = (real_T)
24550 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->deltatime;
24551 L4_MABX_B.SFunction1_o4_hs = (real_T)
24552 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC]->delaytime;
24553 }
24554
24555 /* ... Encode Simulink signals of TX and RM blocks*/
24556 {
24557 rtican_Signal_t CAN_Sgn;
24558
24559 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
24560 /* Add or substract 0.5 in order to round to nearest integer */
24561 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_nd[0] )
24562 + 0.5);
24563 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24564 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24565
24566 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
24567 /* Add or substract 0.5 in order to round to nearest integer */
24568 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_nd[1] )
24569 + 0.5);
24570 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24571 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24572
24573 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
24574 /* Add or substract 0.5 in order to round to nearest integer */
24575 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_nd[2] )
24576 + 0.5);
24577 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24578 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
24579
24580 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
24581 /* Add or substract 0.5 in order to round to nearest integer */
24582 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_nd[3] )
24583 + 0.5);
24584 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24585 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24586
24587 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
24588 /* Add or substract 0.5 in order to round to nearest integer */
24589 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_nd[4] )
24590 + 0.5);
24591 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24592 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24593
24594 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
24595 /* Add or substract 0.5 in order to round to nearest integer */
24596 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_nd[5] )
24597 + 0.5);
24598 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24599 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24600
24601 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
24602 /* Add or substract 0.5 in order to round to nearest integer */
24603 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_nd[6] )
24604 + 0.5);
24605 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24606 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24607
24608 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
24609 /* Add or substract 0.5 in order to round to nearest integer */
24610 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_nd[7] )
24611 + 0.5);
24612 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24613 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24614 }
24615
24616 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24617 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC], 8,
24618 &(CAN_Msg[0]), delayTime);
24619 }
24620 }
24621
24622 /* End of Outputs for SubSystem: '<S874>/PropB_XPR_FC' */
24623
24624 /* S-Function (sfix_bitop): '<S867>/Operator' */
24625 L4_MABX_B.Operator_gg = (uint8_T)(L4_MABX_B.DataTypeConversion_mq &
24626 L4_MABX_P.Operator_BitMask_ju);
24627
24628 /* DataTypeConversion: '<S867>/DataType' */
24629 L4_MABX_B.DataType_ak = L4_MABX_B.Operator_gg;
24630
24631 /* ArithShift: '<S847>/Shift_Arithmetic 2' */
24632 L4_MABX_B.Shift_Arithmetic2_i = ldexp(L4_MABX_B.DataType_ak, (-3));
24633
24634 /* DataTypeConversion: '<S847>/Data Type Conversion5' */
24635 L4_MABX_B.DataTypeConversion5_kb = (L4_MABX_B.Shift_Arithmetic2_i != 0.0);
24636
24637 /* Logic: '<S873>/Operator' */
24638 L4_MABX_B.Operator_kp = (L4_MABX_B.TmpRTBAtOperatorInport1_d &&
24639 L4_MABX_B.DataTypeConversion5_kb);
24640
24641 /* DataTypeConversion: '<S873>/DataType' */
24642 L4_MABX_B.DataType_l1 = L4_MABX_B.Operator_kp;
24643
24644 /* Outputs for Enabled SubSystem: '<S875>/PropB_XPR_FC' incorporates:
24645 * EnablePort: '<S877>/Enable'
24646 */
24647 if (L4_MABX_B.DataType_l1) {
24648 /* S-Function (rti_commonblock): '<S877>/S-Function1' */
24649 /* This comment workarounds a code generation problem */
24650
24651 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
24652 {
24653 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24654
24655 Float32 delayTime = 0.0;
24656
24657 /* ... Read status and timestamp info (previous message) */
24658 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]);
24659
24660 /* Convert timestamp */
24661 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->processed) {
24662 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp =
24663 rtk_dsts_time_to_simtime_convert
24664 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp);
24665 }
24666
24667 /* Messages with timestamp zero have been received in pause/stop state
24668 and must not be handled.
24669 */
24670 if (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp > 0.0) {
24671 L4_MABX_B.SFunction1_o1_oj = (real_T)
24672 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->processed;
24673 L4_MABX_B.SFunction1_o2_mc = (real_T)
24674 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->timestamp;
24675 L4_MABX_B.SFunction1_o3_d = (real_T)
24676 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->deltatime;
24677 L4_MABX_B.SFunction1_o4_di = (real_T)
24678 can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC]->delaytime;
24679 }
24680
24681 /* ... Encode Simulink signals of TX and RM blocks*/
24682 {
24683 rtican_Signal_t CAN_Sgn;
24684
24685 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
24686 /* Add or substract 0.5 in order to round to nearest integer */
24687 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_nd[0] )
24688 + 0.5);
24689 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24690 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24691
24692 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
24693 /* Add or substract 0.5 in order to round to nearest integer */
24694 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_nd[1] )
24695 + 0.5);
24696 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24697 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24698
24699 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
24700 /* Add or substract 0.5 in order to round to nearest integer */
24701 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_nd[2] )
24702 + 0.5);
24703 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24704 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
24705
24706 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
24707 /* Add or substract 0.5 in order to round to nearest integer */
24708 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_nd[3] )
24709 + 0.5);
24710 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24711 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
24712
24713 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
24714 /* Add or substract 0.5 in order to round to nearest integer */
24715 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_nd[4] )
24716 + 0.5);
24717 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24718 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24719
24720 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
24721 /* Add or substract 0.5 in order to round to nearest integer */
24722 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_nd[5] )
24723 + 0.5);
24724 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24725 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
24726
24727 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
24728 /* Add or substract 0.5 in order to round to nearest integer */
24729 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_nd[6] )
24730 + 0.5);
24731 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24732 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
24733
24734 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
24735 /* Add or substract 0.5 in order to round to nearest integer */
24736 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_nd[7] )
24737 + 0.5);
24738 CAN_Sgn.UnsignedSgn &= 0x000000FF;
24739 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
24740 }
24741
24742 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24743 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC], 8,
24744 &(CAN_Msg[0]), delayTime);
24745 }
24746 }
24747
24748 /* End of Outputs for SubSystem: '<S875>/PropB_XPR_FC' */
24749
24750 /* S-Function (sfix_bitop): '<S863>/Operator' */
24751 L4_MABX_B.Operator_cu = (uint8_T)(L4_MABX_B.DataTypeConversion_mq &
24752 L4_MABX_P.Operator_BitMask_f);
24753
24754 /* DataTypeConversion: '<S863>/DataType' */
24755 L4_MABX_B.DataType_f5 = L4_MABX_B.Operator_cu;
24756
24757 /* S-Function (sfix_bitop): '<S868>/Operator' */
24758 L4_MABX_B.Operator_en = (uint8_T)(L4_MABX_B.DataTypeConversion_mq &
24759 L4_MABX_P.Operator_BitMask_jf);
24760
24761 /* DataTypeConversion: '<S868>/DataType' */
24762 L4_MABX_B.DataType_h1 = L4_MABX_B.Operator_en;
24763
24764 /* ArithShift: '<S847>/Shift_Arithmetic 3' */
24765 L4_MABX_B.Shift_Arithmetic3_l = ldexp(L4_MABX_B.DataType_h1, (-4));
24766
24767 /* DataTypeConversion: '<S847>/Data Type Conversion6' */
24768 L4_MABX_B.DataTypeConversion6_a = (L4_MABX_B.Shift_Arithmetic3_l != 0.0);
24769
24770 /* Logic: '<S864>/Operator' */
24771 L4_MABX_B.Operator_au = (L4_MABX_B.TmpRTBAtOperatorInport1_l &&
24772 L4_MABX_B.DataTypeConversion6_a);
24773
24774 /* DataTypeConversion: '<S864>/DataType' */
24775 L4_MABX_B.DataType_hs = L4_MABX_B.Operator_au;
24776
24777 /* S-Function (sfix_bitop): '<S869>/Operator' */
24778 L4_MABX_B.Operator_id = (uint8_T)(L4_MABX_B.DataTypeConversion_mq &
24779 L4_MABX_P.Operator_BitMask_d);
24780
24781 /* DataTypeConversion: '<S869>/DataType' */
24782 L4_MABX_B.DataType_ma = L4_MABX_B.Operator_id;
24783
24784 /* ArithShift: '<S847>/Shift_Arithmetic 4' */
24785 L4_MABX_B.Shift_Arithmetic4_a = ldexp(L4_MABX_B.DataType_ma, (-5));
24786
24787 /* DataTypeConversion: '<S847>/Data Type Conversion7' */
24788 L4_MABX_B.DataTypeConversion7_h = (L4_MABX_B.Shift_Arithmetic4_a != 0.0);
24789
24790 /* Logic: '<S865>/Operator' */
24791 L4_MABX_B.Operator_hl = (L4_MABX_B.TmpRTBAtOperatorInport1_a &&
24792 L4_MABX_B.DataTypeConversion7_h);
24793
24794 /* DataTypeConversion: '<S865>/DataType' */
24795 L4_MABX_B.DataType_jc = L4_MABX_B.Operator_hl;
24796
24797 /* S-Function (sfix_bitop): '<S866>/Operator' */
24798 L4_MABX_B.Operator_eh = (uint8_T)(L4_MABX_B.DataTypeConversion_mq &
24799 L4_MABX_P.Operator_BitMask_fk);
24800
24801 /* DataTypeConversion: '<S866>/DataType' */
24802 L4_MABX_B.DataType_pj = L4_MABX_B.Operator_eh;
24803
24804 /* ArithShift: '<S847>/Shift_Arithmetic ' */
24805 L4_MABX_B.Shift_Arithmetic_i = ldexp(L4_MABX_B.DataType_f5, (-1));
24806
24807 /* DataTypeConversion: '<S847>/Data Type Conversion3' */
24808 L4_MABX_B.DataTypeConversion3_g2 = (L4_MABX_B.Shift_Arithmetic_i != 0.0);
24809
24810 /* Logic: '<S871>/Operator' */
24811 L4_MABX_B.Operator_mg = (L4_MABX_B.TmpRTBAtOperatorInport1_g &&
24812 L4_MABX_B.DataTypeConversion3_g2);
24813
24814 /* DataTypeConversion: '<S871>/DataType' */
24815 L4_MABX_B.DataType_kf = L4_MABX_B.Operator_mg;
24816
24817 /* ArithShift: '<S847>/Shift_Arithmetic 1' */
24818 L4_MABX_B.Shift_Arithmetic1_l = ldexp(L4_MABX_B.DataType_pj, (-2));
24819
24820 /* DataTypeConversion: '<S847>/Data Type Conversion4' */
24821 L4_MABX_B.DataTypeConversion4_k = (L4_MABX_B.Shift_Arithmetic1_l != 0.0);
24822
24823 /* Logic: '<S872>/Operator' */
24824 L4_MABX_B.Operator_pb = (L4_MABX_B.TmpRTBAtOperatorInport1_o &&
24825 L4_MABX_B.DataTypeConversion4_k);
24826
24827 /* DataTypeConversion: '<S872>/DataType' */
24828 L4_MABX_B.DataType_fhi = L4_MABX_B.Operator_pb;
24829
24830 /* DataTypeConversion: '<S904>/Data Type Conversion' */
24831 L4_MABX_B.DataTypeConversion_k = L4_MABX_B.Latitude__d;
24832
24833 /* DataTypeConversion: '<S904>/Data Type Conversion1' */
24834 L4_MABX_B.DataTypeConversion1_co = L4_MABX_B.Longitude__g;
24835
24836 /* DataTypeConversion: '<S853>/Data Type Conversion2' incorporates:
24837 * Constant: '<S819>/enablePosRapidUpdateTX'
24838 */
24839 L4_MABX_B.DataTypeConversion2_mj = L4_MABX_P.enablePosRapidUpdateTX_Value;
24840
24841 /* Outputs for Enabled SubSystem: '<S904>/Std_PosRapidUpdate_01' incorporates:
24842 * EnablePort: '<S905>/Enable'
24843 */
24844 if (L4_MABX_B.DataTypeConversion2_mj) {
24845 /* S-Function (rti_commonblock): '<S905>/S-Function1' */
24846 /* This comment workarounds a code generation problem */
24847
24848 /* dSPACE RTICAN TX Message Block: "Std_PosRapidUpdate_01" Id:3 */
24849 {
24850 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24851
24852 Float32 delayTime = 0.0;
24853
24854 /* ... Read status and timestamp info (previous message) */
24855 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]);
24856
24857 /* Convert timestamp */
24858 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->processed) {
24859 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp =
24860 rtk_dsts_time_to_simtime_convert
24861 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp);
24862 }
24863
24864 /* Messages with timestamp zero have been received in pause/stop state
24865 and must not be handled.
24866 */
24867 if (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp > 0.0) {
24868 L4_MABX_B.SFunction1_o1_fm = (real_T)
24869 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->processed;
24870 L4_MABX_B.SFunction1_o2_pa = (real_T)
24871 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->timestamp;
24872 L4_MABX_B.SFunction1_o3_kn = (real_T)
24873 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->deltatime;
24874 L4_MABX_B.SFunction1_o4_eb = (real_T)
24875 can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3]->delaytime;
24876 }
24877
24878 /* ... Encode Simulink signals of TX and RM blocks*/
24879 {
24880 rtican_Signal_t CAN_Sgn;
24881
24882 /* ...... "Latitude_" (0|32, standard signal, signed int, little endian) */
24883 /* Add or substract 0.5 in order to round to nearest integer */
24884 if (( L4_MABX_B.DataTypeConversion_k - ( 0 ) ) / 1.0E-7 < -0.5)
24885 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion_k - ( 0 ) )
24886 / 1.0E-7 - 0.5);
24887 else
24888 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion_k - ( 0 ) )
24889 / 1.0E-7 + 0.5);
24890 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24891 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte1;
24892 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte2;
24893 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte3;
24894
24895 /* ...... "Longitude_" (32|32, standard signal, signed int, little endian) */
24896 /* Add or substract 0.5 in order to round to nearest integer */
24897 if (( L4_MABX_B.DataTypeConversion1_co - ( 0 ) ) / 1.0E-7 < -0.5)
24898 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion1_co - ( 0 )
24899 ) / 1.0E-7 - 0.5);
24900 else
24901 CAN_Sgn.SignedSgn = (Int32) (( L4_MABX_B.DataTypeConversion1_co - ( 0 )
24902 ) / 1.0E-7 + 0.5);
24903 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
24904 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
24905 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte2;
24906 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte3;
24907 }
24908
24909 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
24910 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3], 8, &(CAN_Msg[0]),
24911 delayTime);
24912 }
24913 }
24914
24915 /* End of Outputs for SubSystem: '<S904>/Std_PosRapidUpdate_01' */
24916
24917 /* Outputs for Enabled SubSystem: '<S855>/CCVS1_00' incorporates:
24918 * EnablePort: '<S857>/Enable'
24919 */
24920 /* Outputs for Enabled SubSystem: '<S854>/CCVS1_00' incorporates:
24921 * EnablePort: '<S856>/Enable'
24922 */
24923 /* Constant: '<S845>/Enable_TX_CCVS1_00' */
24924 if (L4_MABX_P.Enable_TX_CCVS1_00_Value) {
24925 /* S-Function (rti_commonblock): '<S856>/S-Function1' */
24926 /* This comment workarounds a code generation problem */
24927
24928 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:419361024 */
24929 {
24930 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
24931
24932 Float32 delayTime = 0.0;
24933
24934 /* ... Read status and timestamp info (previous message) */
24935 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]);
24936
24937 /* Convert timestamp */
24938 if (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->processed) {
24939 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp =
24940 rtk_dsts_time_to_simtime_convert
24941 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp);
24942 }
24943
24944 /* Messages with timestamp zero have been received in pause/stop state
24945 and must not be handled.
24946 */
24947 if (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp > 0.0) {
24948 L4_MABX_B.SFunction1_o1_ex = (real_T)
24949 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->processed;
24950 L4_MABX_B.SFunction1_o2_lx = (real_T)
24951 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->timestamp;
24952 L4_MABX_B.SFunction1_o3_ax = (real_T)
24953 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->deltatime;
24954 L4_MABX_B.SFunction1_o4_ci = (real_T)
24955 can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100]->delaytime;
24956 }
24957
24958 /* ... Encode Simulink signals of TX and RM blocks*/
24959 {
24960 rtican_Signal_t CAN_Sgn;
24961
24962 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
24963 /* Add or substract 0.5 in order to round to nearest integer */
24964 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TwoSpeedAxleSwitch_d ) + 0.5);
24965 CAN_Sgn.UnsignedSgn &= 0x00000003;
24966 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24967
24968 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
24969 /* Add or substract 0.5 in order to round to nearest integer */
24970 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingBrakeSwitch_b ) + 0.5);
24971 CAN_Sgn.UnsignedSgn &= 0x00000003;
24972 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
24973 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24974
24975 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
24976 /* Add or substract 0.5 in order to round to nearest integer */
24977 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlPauseSwitch_d ) +
24978 0.5);
24979 CAN_Sgn.UnsignedSgn &= 0x00000003;
24980 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
24981 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24982
24983 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
24984 /* Add or substract 0.5 in order to round to nearest integer */
24985 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkBrakeReleaseInhibitRq_b )
24986 + 0.5);
24987 CAN_Sgn.UnsignedSgn &= 0x00000003;
24988 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
24989 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
24990
24991 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
24992 /* Add or substract 0.5 in order to round to nearest integer */
24993 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.WheelBasedVehicleSpeed_gh -
24994 ( 0 ) ) / 0.00390625 + 0.5);
24995 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
24996 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
24997 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
24998
24999 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
25000 /* Add or substract 0.5 in order to round to nearest integer */
25001 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlActive_b ) + 0.5);
25002 CAN_Sgn.UnsignedSgn &= 0x00000003;
25003 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25004
25005 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
25006 /* Add or substract 0.5 in order to round to nearest integer */
25007 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlEnableSwitch_kn )
25008 + 0.5);
25009 CAN_Sgn.UnsignedSgn &= 0x00000003;
25010 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25011 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25012
25013 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
25014 /* Add or substract 0.5 in order to round to nearest integer */
25015 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakeSwitch_et ) + 0.5);
25016 CAN_Sgn.UnsignedSgn &= 0x00000003;
25017 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25018 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25019
25020 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
25021 /* Add or substract 0.5 in order to round to nearest integer */
25022 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ClutchSwitch_b ) + 0.5);
25023 CAN_Sgn.UnsignedSgn &= 0x00000003;
25024 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25025 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25026
25027 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
25028 /* Add or substract 0.5 in order to round to nearest integer */
25029 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSwitch_b ) +
25030 0.5);
25031 CAN_Sgn.UnsignedSgn &= 0x00000003;
25032 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25033
25034 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
25035 /* Add or substract 0.5 in order to round to nearest integer */
25036 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlCoastSwitch_j ) +
25037 0.5);
25038 CAN_Sgn.UnsignedSgn &= 0x00000003;
25039 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25040 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25041
25042 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
25043 /* Add or substract 0.5 in order to round to nearest integer */
25044 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlResumeSwitch_j ) +
25045 0.5);
25046 CAN_Sgn.UnsignedSgn &= 0x00000003;
25047 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25048 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25049
25050 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
25051 /* Add or substract 0.5 in order to round to nearest integer */
25052 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlAccelerateSwitch_j
25053 ) + 0.5);
25054 CAN_Sgn.UnsignedSgn &= 0x00000003;
25055 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25056 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25057
25058 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
25059 /* Add or substract 0.5 in order to round to nearest integer */
25060 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSpeed_m ) + 0.5);
25061 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25062 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25063
25064 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
25065 /* Add or substract 0.5 in order to round to nearest integer */
25066 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PTOGovernorState_g ) + 0.5);
25067 CAN_Sgn.UnsignedSgn &= 0x0000001F;
25068 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25069
25070 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
25071 /* Add or substract 0.5 in order to round to nearest integer */
25072 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlStates_n ) + 0.5);
25073 CAN_Sgn.UnsignedSgn &= 0x00000007;
25074 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 5;
25075 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25076
25077 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
25078 /* Add or substract 0.5 in order to round to nearest integer */
25079 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleIncrementSwitch_j ) +
25080 0.5);
25081 CAN_Sgn.UnsignedSgn &= 0x00000003;
25082 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25083
25084 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
25085 /* Add or substract 0.5 in order to round to nearest integer */
25086 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleDecrementSwitch_l ) +
25087 0.5);
25088 CAN_Sgn.UnsignedSgn &= 0x00000003;
25089 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25090 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25091
25092 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
25093 /* Add or substract 0.5 in order to round to nearest integer */
25094 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngTestModeSwitch_d ) + 0.5);
25095 CAN_Sgn.UnsignedSgn &= 0x00000003;
25096 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25097 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25098
25099 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
25100 /* Add or substract 0.5 in order to round to nearest integer */
25101 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngShutdownOverrideSwitch_g )
25102 + 0.5);
25103 CAN_Sgn.UnsignedSgn &= 0x00000003;
25104 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25105 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25106 }
25107
25108 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25109 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100], 8,
25110 &(CAN_Msg[0]), delayTime);
25111 }
25112
25113 /* S-Function (rti_commonblock): '<S857>/S-Function1' */
25114 /* This comment workarounds a code generation problem */
25115
25116 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:218034432 */
25117 {
25118 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
25119
25120 Float32 delayTime = 0.0;
25121
25122 /* ... Read status and timestamp info (previous message) */
25123 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]);
25124
25125 /* Convert timestamp */
25126 if (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->processed) {
25127 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp =
25128 rtk_dsts_time_to_simtime_convert
25129 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp);
25130 }
25131
25132 /* Messages with timestamp zero have been received in pause/stop state
25133 and must not be handled.
25134 */
25135 if (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp > 0.0) {
25136 L4_MABX_B.SFunction1_o1_ip = (real_T)
25137 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->processed;
25138 L4_MABX_B.SFunction1_o2_k = (real_T)
25139 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->timestamp;
25140 L4_MABX_B.SFunction1_o3_h = (real_T)
25141 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->deltatime;
25142 L4_MABX_B.SFunction1_o4_pe = (real_T)
25143 can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100]->delaytime;
25144 }
25145
25146 /* ... Encode Simulink signals of TX and RM blocks*/
25147 {
25148 rtican_Signal_t CAN_Sgn;
25149
25150 /* ...... "TwoSpeedAxleSwitch" (0|2, standard signal, unsigned int, little endian) */
25151 /* Add or substract 0.5 in order to round to nearest integer */
25152 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TwoSpeedAxleSwitch_dg ) +
25153 0.5);
25154 CAN_Sgn.UnsignedSgn &= 0x00000003;
25155 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25156
25157 /* ...... "ParkingBrakeSwitch" (2|2, standard signal, unsigned int, little endian) */
25158 /* Add or substract 0.5 in order to round to nearest integer */
25159 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingBrakeSwitch_br ) +
25160 0.5);
25161 CAN_Sgn.UnsignedSgn &= 0x00000003;
25162 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25163 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25164
25165 /* ...... "CruiseCtrlPauseSwitch" (4|2, standard signal, unsigned int, little endian) */
25166 /* Add or substract 0.5 in order to round to nearest integer */
25167 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlPauseSwitch_dm ) +
25168 0.5);
25169 CAN_Sgn.UnsignedSgn &= 0x00000003;
25170 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25171 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25172
25173 /* ...... "ParkBrakeReleaseInhibitRq" (6|2, standard signal, unsigned int, little endian) */
25174 /* Add or substract 0.5 in order to round to nearest integer */
25175 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkBrakeReleaseInhibitRq_b1
25176 ) + 0.5);
25177 CAN_Sgn.UnsignedSgn &= 0x00000003;
25178 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25179 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25180
25181 /* ...... "WheelBasedVehicleSpeed" (8|16, standard signal, unsigned int, little endian) */
25182 /* Add or substract 0.5 in order to round to nearest integer */
25183 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.WheelBasedVehicleSpeed_gh3 -
25184 ( 0 ) ) / 0.00390625 + 0.5);
25185 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
25186 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25187 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
25188
25189 /* ...... "CruiseCtrlActive" (24|2, standard signal, unsigned int, little endian) */
25190 /* Add or substract 0.5 in order to round to nearest integer */
25191 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlActive_bl ) + 0.5);
25192 CAN_Sgn.UnsignedSgn &= 0x00000003;
25193 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25194
25195 /* ...... "CruiseCtrlEnableSwitch" (26|2, standard signal, unsigned int, little endian) */
25196 /* Add or substract 0.5 in order to round to nearest integer */
25197 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlEnableSwitch_kn0 )
25198 + 0.5);
25199 CAN_Sgn.UnsignedSgn &= 0x00000003;
25200 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25201 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25202
25203 /* ...... "BrakeSwitch" (28|2, standard signal, unsigned int, little endian) */
25204 /* Add or substract 0.5 in order to round to nearest integer */
25205 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakeSwitch_ets ) + 0.5);
25206 CAN_Sgn.UnsignedSgn &= 0x00000003;
25207 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25208 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25209
25210 /* ...... "ClutchSwitch" (30|2, standard signal, unsigned int, little endian) */
25211 /* Add or substract 0.5 in order to round to nearest integer */
25212 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ClutchSwitch_bo ) + 0.5);
25213 CAN_Sgn.UnsignedSgn &= 0x00000003;
25214 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25215 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25216
25217 /* ...... "CruiseCtrlSetSwitch" (32|2, standard signal, unsigned int, little endian) */
25218 /* Add or substract 0.5 in order to round to nearest integer */
25219 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSwitch_bj ) +
25220 0.5);
25221 CAN_Sgn.UnsignedSgn &= 0x00000003;
25222 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25223
25224 /* ...... "CruiseCtrlCoastSwitch" (34|2, standard signal, unsigned int, little endian) */
25225 /* Add or substract 0.5 in order to round to nearest integer */
25226 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlCoastSwitch_jy ) +
25227 0.5);
25228 CAN_Sgn.UnsignedSgn &= 0x00000003;
25229 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25230 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25231
25232 /* ...... "CruiseCtrlResumeSwitch" (36|2, standard signal, unsigned int, little endian) */
25233 /* Add or substract 0.5 in order to round to nearest integer */
25234 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlResumeSwitch_jd )
25235 + 0.5);
25236 CAN_Sgn.UnsignedSgn &= 0x00000003;
25237 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25238 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25239
25240 /* ...... "CruiseCtrlAccelerateSwitch" (38|2, standard signal, unsigned int, little endian) */
25241 /* Add or substract 0.5 in order to round to nearest integer */
25242 CAN_Sgn.UnsignedSgn = (UInt32)
25243 (( L4_MABX_B.CruiseCtrlAccelerateSwitch_jp ) + 0.5);
25244 CAN_Sgn.UnsignedSgn &= 0x00000003;
25245 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25246 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25247
25248 /* ...... "CruiseCtrlSetSpeed" (40|8, standard signal, unsigned int, little endian) */
25249 /* Add or substract 0.5 in order to round to nearest integer */
25250 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlSetSpeed_mb ) +
25251 0.5);
25252 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25253 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25254
25255 /* ...... "PTOGovernorState" (48|5, standard signal, unsigned int, little endian) */
25256 /* Add or substract 0.5 in order to round to nearest integer */
25257 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PTOGovernorState_gp ) + 0.5);
25258 CAN_Sgn.UnsignedSgn &= 0x0000001F;
25259 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25260
25261 /* ...... "CruiseCtrlStates" (53|3, standard signal, unsigned int, little endian) */
25262 /* Add or substract 0.5 in order to round to nearest integer */
25263 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CruiseCtrlStates_nb ) + 0.5);
25264 CAN_Sgn.UnsignedSgn &= 0x00000007;
25265 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 5;
25266 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25267
25268 /* ...... "EngIdleIncrementSwitch" (56|2, standard signal, unsigned int, little endian) */
25269 /* Add or substract 0.5 in order to round to nearest integer */
25270 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleIncrementSwitch_jl )
25271 + 0.5);
25272 CAN_Sgn.UnsignedSgn &= 0x00000003;
25273 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25274
25275 /* ...... "EngIdleDecrementSwitch" (58|2, standard signal, unsigned int, little endian) */
25276 /* Add or substract 0.5 in order to round to nearest integer */
25277 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngIdleDecrementSwitch_l4 )
25278 + 0.5);
25279 CAN_Sgn.UnsignedSgn &= 0x00000003;
25280 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25281 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25282
25283 /* ...... "EngTestModeSwitch" (60|2, standard signal, unsigned int, little endian) */
25284 /* Add or substract 0.5 in order to round to nearest integer */
25285 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngTestModeSwitch_dg ) + 0.5);
25286 CAN_Sgn.UnsignedSgn &= 0x00000003;
25287 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25288 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25289
25290 /* ...... "EngShutdownOverrideSwitch" (62|2, standard signal, unsigned int, little endian) */
25291 /* Add or substract 0.5 in order to round to nearest integer */
25292 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngShutdownOverrideSwitch_g5
25293 ) + 0.5);
25294 CAN_Sgn.UnsignedSgn &= 0x00000003;
25295 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25296 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25297 }
25298
25299 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25300 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100], 8,
25301 &(CAN_Msg[0]), delayTime);
25302 }
25303 }
25304
25305 /* End of Constant: '<S845>/Enable_TX_CCVS1_00' */
25306 /* End of Outputs for SubSystem: '<S854>/CCVS1_00' */
25307 /* End of Outputs for SubSystem: '<S855>/CCVS1_00' */
25308
25309 /* DataTypeConversion: '<S851>/Data Type Conversion' incorporates:
25310 * Constant: '<S850>/Constant'
25311 */
25312 L4_MABX_B.DataTypeConversion_a0 = L4_MABX_P.Constant_Value_cy;
25313
25314 /* DataTypeConversion: '<S851>/Data Type Conversion1' */
25315 L4_MABX_B.DataTypeConversion1_m = (uint16_T)L4_MABX_B.DataTypeConversion_a0;
25316
25317 /* S-Function (sfix_bitop): '<S882>/Operator' */
25318 L4_MABX_B.Operator_gj = (uint16_T)(L4_MABX_B.DataTypeConversion1_m &
25319 L4_MABX_P.Operator_BitMask_l5);
25320
25321 /* DataTypeConversion: '<S882>/DataType' */
25322 tmp = L4_MABX_B.Operator_gj;
25323 if (tmp > 255) {
25324 tmp = 255U;
25325 }
25326
25327 L4_MABX_B.DataType_gi = (uint8_T)tmp;
25328
25329 /* End of DataTypeConversion: '<S882>/DataType' */
25330
25331 /* S-Function (sfix_bitop): '<S883>/Operator' */
25332 L4_MABX_B.Operator_g5 = (uint16_T)(L4_MABX_B.DataTypeConversion1_m &
25333 L4_MABX_P.Operator_BitMask_g3);
25334
25335 /* DataTypeConversion: '<S883>/DataType' */
25336 L4_MABX_B.DataType_bf = L4_MABX_B.Operator_g5;
25337
25338 /* ArithShift: '<S851>/Shift_Arithmetic ' */
25339 L4_MABX_B.Shift_Arithmetic_a = (uint16_T)((uint32_T)L4_MABX_B.DataType_bf >> 8);
25340
25341 /* DataTypeConversion: '<S851>/Data Type Conversion2' */
25342 tmp = L4_MABX_B.Shift_Arithmetic_a;
25343 if (tmp > 255) {
25344 tmp = 255U;
25345 }
25346
25347 L4_MABX_B.DataTypeConversion2_a3 = (uint8_T)tmp;
25348
25349 /* End of DataTypeConversion: '<S851>/Data Type Conversion2' */
25350
25351 /* DataTypeConversion: '<S846>/Data Type Conversion1' incorporates:
25352 * Constant: '<S851>/Constant'
25353 */
25354 L4_MABX_B.DataTypeConversion1_b[0] = L4_MABX_P.Constant_Value_b3;
25355 L4_MABX_B.DataTypeConversion1_b[1] = L4_MABX_P.Constant_Value_b3;
25356 L4_MABX_B.DataTypeConversion1_b[2] = L4_MABX_P.Constant_Value_b3;
25357 L4_MABX_B.DataTypeConversion1_b[3] = L4_MABX_P.Constant_Value_b3;
25358 L4_MABX_B.DataTypeConversion1_b[4] = L4_MABX_P.Constant_Value_b3;
25359 L4_MABX_B.DataTypeConversion1_b[5] = L4_MABX_P.Constant_Value_b3;
25360 L4_MABX_B.DataTypeConversion1_b[6] = L4_MABX_B.DataType_gi;
25361 L4_MABX_B.DataTypeConversion1_b[7] = L4_MABX_B.DataTypeConversion2_a3;
25362
25363 /* RateTransition: '<S858>/TmpRTBAtHiddenBuf_InsertedFor_PropB_REAX_5_E4_at_inport_10Inport1' */
25364 L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_P = L4_MABX_B.Operator_k1;
25365
25366 /* Outputs for Enabled SubSystem: '<S858>/PropB_REAX_5_E4' incorporates:
25367 * EnablePort: '<S860>/Enable'
25368 */
25369 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_P) {
25370 /* S-Function (rti_commonblock): '<S860>/S-Function1' incorporates:
25371 * Constant: '<S858>/Constant'
25372 * Constant: '<S858>/Constant1'
25373 */
25374 /* This comment workarounds a code generation problem */
25375
25376 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
25377 {
25378 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25379 0x00 };
25380
25381 Float32 delayTime = 0.0;
25382
25383 /* link this pointer to CAN_Msg for use in initialize_io_units() */
25384 CANTP1_PTR_M1_C2_XTD_0x18FFFAE4 = &(CAN_Msg[0]);
25385
25386 /* ... perform loop-back if required */
25387 if (L4_MABX_P.Constant1_Value_nm > 0.5) {
25388 /* ... updating the used tx-clientbuffer */
25389 can_tp1_msg_update_all( CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->module,
25390 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->queue );
25391
25392 /* ... Read status and timestamp info perform loop-back (previous message) */
25393 can_tp1_tx_msg_read_loopback(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4,
25394 8, // datalen
25395 &(CAN_Msg[0]),
25396 CANTP1_RX_SPMSG_M1_C2_XTD);
25397
25398 /* Convert timestamp */
25399 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
25400 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
25401 rtk_dsts_time_to_simtime_convert
25402 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
25403 }
25404 } else {
25405 /* ... Read status and timestamp info (previous message) */
25406 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4);
25407
25408 /* Convert timestamp */
25409 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
25410 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
25411 rtk_dsts_time_to_simtime_convert
25412 (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
25413 }
25414 }
25415
25416 /* Messages with timestamp zero have been received in pause/stop state
25417 and must not be handled.
25418 */
25419 if (CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp > 0.0) {
25420 L4_MABX_B.SFunction1_o1_d5 = (real_T)
25421 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->processed;
25422 L4_MABX_B.SFunction1_o2_nr = (real_T)
25423 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->timestamp;
25424 L4_MABX_B.SFunction1_o3_aa = (real_T)
25425 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->deltatime;
25426 L4_MABX_B.SFunction1_o4_a4 = (real_T)
25427 CANTP1_TX_M1_C2_MCRCLT_XTD_0X18FFFAE4->delaytime;
25428 }
25429
25430 /* ... Encode Simulink signals of TX and RM blocks*/
25431 {
25432 rtican_Signal_t CAN_Sgn;
25433 UInt32 i;
25434
25435 /* Initialize the static message data to zero */
25436 for (i=0; i<8; i++ )
25437 CAN_Msg[i] = 0;
25438
25439 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
25440 /* Add or substract 0.5 in order to round to nearest integer */
25441 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[0] ) +
25442 0.5);
25443 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25444 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25445
25446 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
25447 /* Add or substract 0.5 in order to round to nearest integer */
25448 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[1] ) +
25449 0.5);
25450 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25451 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25452
25453 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
25454 /* Add or substract 0.5 in order to round to nearest integer */
25455 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[2] ) +
25456 0.5);
25457 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25458 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25459
25460 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
25461 /* Add or substract 0.5 in order to round to nearest integer */
25462 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[3] ) +
25463 0.5);
25464 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25465 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25466
25467 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
25468 /* Add or substract 0.5 in order to round to nearest integer */
25469 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[4] ) +
25470 0.5);
25471 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25472 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25473
25474 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
25475 /* Add or substract 0.5 in order to round to nearest integer */
25476 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[5] ) +
25477 0.5);
25478 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25479 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25480
25481 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
25482 /* Add or substract 0.5 in order to round to nearest integer */
25483 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[6] ) +
25484 0.5);
25485 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25486 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25487
25488 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
25489 /* Add or substract 0.5 in order to round to nearest integer */
25490 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[7] ) +
25491 0.5);
25492 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25493 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25494 }
25495
25496 delayTime = (Float32) L4_MABX_P.Constant_Value_hl / (1700);
25497
25498 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25499 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFFAE4], 8,
25500 &(CAN_Msg[0]), delayTime);
25501 }
25502 }
25503
25504 /* End of Outputs for SubSystem: '<S858>/PropB_REAX_5_E4' */
25505
25506 /* RateTransition: '<S859>/TmpRTBAtHiddenBuf_InsertedFor_PropB_REAX_5_E4_at_inport_10Inport1' */
25507 L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_b = L4_MABX_B.EnablePropB_ReAX_CAN6;
25508
25509 /* Outputs for Enabled SubSystem: '<S859>/PropB_REAX_5_E4' incorporates:
25510 * EnablePort: '<S861>/Enable'
25511 */
25512 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_b) {
25513 /* S-Function (rti_commonblock): '<S861>/S-Function1' incorporates:
25514 * Constant: '<S859>/Constant'
25515 * Constant: '<S859>/Constant1'
25516 */
25517 /* This comment workarounds a code generation problem */
25518
25519 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
25520 {
25521 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25522 0x00 };
25523
25524 Float32 delayTime = 0.0;
25525
25526 /* link this pointer to CAN_Msg for use in initialize_io_units() */
25527 CANTP1_PTR_M3_C2_XTD_0x18FFFAE4 = &(CAN_Msg[0]);
25528
25529 /* ... perform loop-back if required */
25530 if (L4_MABX_P.Constant1_Value_pt > 0.5) {
25531 /* ... updating the used tx-clientbuffer */
25532 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->module,
25533 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->queue );
25534
25535 /* ... Read status and timestamp info perform loop-back (previous message) */
25536 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4,
25537 8, // datalen
25538 &(CAN_Msg[0]),
25539 CANTP1_RX_SPMSG_M3_C2_XTD);
25540
25541 /* Convert timestamp */
25542 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
25543 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
25544 rtk_dsts_time_to_simtime_convert
25545 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
25546 }
25547 } else {
25548 /* ... Read status and timestamp info (previous message) */
25549 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4);
25550
25551 /* Convert timestamp */
25552 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->processed) {
25553 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp =
25554 rtk_dsts_time_to_simtime_convert
25555 (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp);
25556 }
25557 }
25558
25559 /* Messages with timestamp zero have been received in pause/stop state
25560 and must not be handled.
25561 */
25562 if (CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp > 0.0) {
25563 L4_MABX_B.SFunction1_o1_c = (real_T)
25564 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->processed;
25565 L4_MABX_B.SFunction1_o2_jv = (real_T)
25566 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->timestamp;
25567 L4_MABX_B.SFunction1_o3_e = (real_T)
25568 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->deltatime;
25569 L4_MABX_B.SFunction1_o4_e2 = (real_T)
25570 CANTP1_TX_M3_C2_MCRCLT_XTD_0X18FFFAE4->delaytime;
25571 }
25572
25573 /* ... Encode Simulink signals of TX and RM blocks*/
25574 {
25575 rtican_Signal_t CAN_Sgn;
25576 UInt32 i;
25577
25578 /* Initialize the static message data to zero */
25579 for (i=0; i<8; i++ )
25580 CAN_Msg[i] = 0;
25581
25582 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
25583 /* Add or substract 0.5 in order to round to nearest integer */
25584 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[0] ) +
25585 0.5);
25586 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25587 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25588
25589 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
25590 /* Add or substract 0.5 in order to round to nearest integer */
25591 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[1] ) +
25592 0.5);
25593 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25594 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25595
25596 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
25597 /* Add or substract 0.5 in order to round to nearest integer */
25598 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[2] ) +
25599 0.5);
25600 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25601 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25602
25603 /* ...... "byte4" (24|8, standard signal, unsigned int, little endian) */
25604 /* Add or substract 0.5 in order to round to nearest integer */
25605 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[3] ) +
25606 0.5);
25607 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25608 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25609
25610 /* ...... "byte5" (32|8, standard signal, unsigned int, little endian) */
25611 /* Add or substract 0.5 in order to round to nearest integer */
25612 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[4] ) +
25613 0.5);
25614 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25615 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25616
25617 /* ...... "byte6" (40|8, standard signal, unsigned int, little endian) */
25618 /* Add or substract 0.5 in order to round to nearest integer */
25619 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[5] ) +
25620 0.5);
25621 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25622 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25623
25624 /* ...... "byte7" (48|8, standard signal, unsigned int, little endian) */
25625 /* Add or substract 0.5 in order to round to nearest integer */
25626 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[6] ) +
25627 0.5);
25628 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25629 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25630
25631 /* ...... "byte8" (56|8, standard signal, unsigned int, little endian) */
25632 /* Add or substract 0.5 in order to round to nearest integer */
25633 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_b[7] ) +
25634 0.5);
25635 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25636 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25637 }
25638
25639 delayTime = (Float32) L4_MABX_P.Constant_Value_dq / (1700);
25640
25641 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25642 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFFAE4], 8,
25643 &(CAN_Msg[0]), delayTime);
25644 }
25645 }
25646
25647 /* End of Outputs for SubSystem: '<S859>/PropB_REAX_5_E4' */
25648
25649 /* DataTypeConversion: '<S878>/Data Type Conversion' */
25650 L4_MABX_B.DataTypeConversion_c = L4_MABX_B.SID_f;
25651
25652 /* DataTypeConversion: '<S878>/Data Type Conversion1' */
25653 L4_MABX_B.DataTypeConversion1_nu = L4_MABX_B.COGReference_e;
25654
25655 /* DataTypeConversion: '<S878>/Data Type Conversion2' */
25656 L4_MABX_B.DataTypeConversion2_ch = L4_MABX_B.CourseOverGround_a;
25657
25658 /* DataTypeConversion: '<S878>/Data Type Conversion3' */
25659 L4_MABX_B.DataTypeConversion3_k = L4_MABX_B.SpeedOverGround_c;
25660
25661 /* DataTypeConversion: '<S848>/Data Type Conversion2' incorporates:
25662 * Constant: '<S819>/enableCOGSRapidUpdateTX'
25663 */
25664 L4_MABX_B.DataTypeConversion2_mm = L4_MABX_P.enableCOGSRapidUpdateTX_Value;
25665
25666 /* Outputs for Enabled SubSystem: '<S878>/Std_COGSOGRapidUpdate_01' incorporates:
25667 * EnablePort: '<S879>/Enable'
25668 */
25669 if (L4_MABX_B.DataTypeConversion2_mm) {
25670 /* S-Function (rti_commonblock): '<S879>/S-Function1' incorporates:
25671 * Constant: '<S878>/Constant'
25672 * Constant: '<S878>/Constant1'
25673 */
25674 /* This comment workarounds a code generation problem */
25675
25676 /* dSPACE RTICAN TX Message Block: "Std_COGSOGRapidUpdate_01" Id:7 */
25677 {
25678 static UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
25679 0x00 };
25680
25681 Float32 delayTime = 0.0;
25682
25683 /* link this pointer to CAN_Msg for use in initialize_io_units() */
25684 CANTP1_PTR_M3_C2_STD_0x7 = &(CAN_Msg[0]);
25685
25686 /* ... perform loop-back if required */
25687 if (L4_MABX_P.Constant1_Value_h > 0.5) {
25688 /* ... updating the used tx-clientbuffer */
25689 can_tp1_msg_update_all( CANTP1_TX_M3_C2_MCRCLT_STD_0X7->module,
25690 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->queue );
25691
25692 /* ... Read status and timestamp info perform loop-back (previous message) */
25693 can_tp1_tx_msg_read_loopback(CANTP1_TX_M3_C2_MCRCLT_STD_0X7,
25694 8, // datalen
25695 &(CAN_Msg[0]),
25696 CANTP1_RX_SPMSG_M3_C2_STD);
25697
25698 /* Convert timestamp */
25699 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->processed) {
25700 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp =
25701 rtk_dsts_time_to_simtime_convert
25702 (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp);
25703 }
25704 } else {
25705 /* ... Read status and timestamp info (previous message) */
25706 can_tp1_msg_read_from_dsmcr(CANTP1_TX_M3_C2_MCRCLT_STD_0X7);
25707
25708 /* Convert timestamp */
25709 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->processed) {
25710 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp =
25711 rtk_dsts_time_to_simtime_convert
25712 (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp);
25713 }
25714 }
25715
25716 /* Messages with timestamp zero have been received in pause/stop state
25717 and must not be handled.
25718 */
25719 if (CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp > 0.0) {
25720 L4_MABX_B.SFunction1_o1_b2 = (real_T)
25721 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->processed;
25722 L4_MABX_B.SFunction1_o2_it = (real_T)
25723 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->timestamp;
25724 L4_MABX_B.SFunction1_o3_pz = (real_T)
25725 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->deltatime;
25726 L4_MABX_B.SFunction1_o4_gy = (real_T)
25727 CANTP1_TX_M3_C2_MCRCLT_STD_0X7->delaytime;
25728 }
25729
25730 /* ... Encode Simulink signals of TX and RM blocks*/
25731 {
25732 rtican_Signal_t CAN_Sgn;
25733 UInt32 i;
25734
25735 /* Initialize the static message data to zero */
25736 for (i=0; i<8; i++ )
25737 CAN_Msg[i] = 0;
25738
25739 /* ...... "SID" (0|8, standard signal, unsigned int, little endian) */
25740 /* Add or substract 0.5 in order to round to nearest integer */
25741 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_c ) + 0.5);
25742 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25743 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25744
25745 /* ...... "COGReference" (8|2, standard signal, unsigned int, little endian) */
25746 /* Add or substract 0.5 in order to round to nearest integer */
25747 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_nu ) +
25748 0.5);
25749 CAN_Sgn.UnsignedSgn &= 0x00000003;
25750 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25751
25752 /* ...... "CourseOverGround" (16|16, standard signal, unsigned int, little endian) */
25753 /* Add or substract 0.5 in order to round to nearest integer */
25754 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_ch - ( 0
25755 ) ) / 0.0001 + 0.5);
25756 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
25757 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25758 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte1;
25759
25760 /* ...... "SpeedOverGround" (32|16, standard signal, unsigned int, little endian) */
25761 /* Add or substract 0.5 in order to round to nearest integer */
25762 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion3_k - ( 0 )
25763 ) / 0.01 + 0.5);
25764 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
25765 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25766 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte1;
25767 }
25768
25769 /* mask unused bits with '1' */
25770 CAN_Msg[1] |= 0xFC;
25771 CAN_Msg[6] |= 0xFF;
25772 CAN_Msg[7] |= 0xFF;
25773 delayTime = (Float32) L4_MABX_P.Constant_Value_ke / (2000);
25774
25775 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25776 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X7], 8, &(CAN_Msg[0]),
25777 delayTime);
25778 }
25779 }
25780
25781 /* End of Outputs for SubSystem: '<S878>/Std_COGSOGRapidUpdate_01' */
25782
25783 /* DataTypeConversion: '<S849>/Data Type Conversion2' incorporates:
25784 * Constant: '<S819>/enableEBC1_8B_TX'
25785 */
25786 L4_MABX_B.DataTypeConversion2_oi = L4_MABX_P.enableEBC1_8B_TX_Value;
25787
25788 /* Outputs for Enabled SubSystem: '<S880>/EBC1_TX' incorporates:
25789 * EnablePort: '<S881>/Enable'
25790 */
25791 if (L4_MABX_B.DataTypeConversion2_oi) {
25792 /* S-Function (rti_commonblock): '<S881>/S-Function1' */
25793 /* This comment workarounds a code generation problem */
25794
25795 /* dSPACE RTICAN TX Message Block: "EBC1_TX" Id:418382219 */
25796 {
25797 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
25798
25799 Float32 delayTime = 0.0;
25800
25801 /* ... Read status and timestamp info (previous message) */
25802 can_tp1_msg_read(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]);
25803
25804 /* Convert timestamp */
25805 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->processed) {
25806 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp =
25807 rtk_dsts_time_to_simtime_convert
25808 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp);
25809 }
25810
25811 /* Messages with timestamp zero have been received in pause/stop state
25812 and must not be handled.
25813 */
25814 if (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp > 0.0) {
25815 L4_MABX_B.SFunction1_o1_jj = (real_T)
25816 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->processed;
25817 L4_MABX_B.SFunction1_o2_n = (real_T)
25818 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->timestamp;
25819 L4_MABX_B.SFunction1_o3_jr = (real_T)
25820 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->deltatime;
25821 L4_MABX_B.SFunction1_o4_aoa = (real_T)
25822 can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B]->delaytime;
25823 }
25824
25825 /* ... Encode Simulink signals of TX and RM blocks*/
25826 {
25827 rtican_Signal_t CAN_Sgn;
25828
25829 /* ...... "ASREngCtrlActive" (0|2, standard signal, unsigned int, little endian) */
25830 /* Add or substract 0.5 in order to round to nearest integer */
25831 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASREngCtrlActive ) + 0.5);
25832 CAN_Sgn.UnsignedSgn &= 0x00000003;
25833 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25834
25835 /* ...... "ASRBrakeCtrlActive" (2|2, standard signal, unsigned int, little endian) */
25836 /* Add or substract 0.5 in order to round to nearest integer */
25837 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASRBrakeCtrlActive ) + 0.5);
25838 CAN_Sgn.UnsignedSgn &= 0x00000003;
25839 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25840 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25841
25842 /* ...... "AntiLockBrakingActive" (4|2, standard signal, unsigned int, little endian) */
25843 /* Add or substract 0.5 in order to round to nearest integer */
25844 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AntiLockBrakingActive ) +
25845 0.5);
25846 CAN_Sgn.UnsignedSgn &= 0x00000003;
25847 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25848 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25849
25850 /* ...... "EBSBrakeSwitch" (6|2, standard signal, unsigned int, little endian) */
25851 /* Add or substract 0.5 in order to round to nearest integer */
25852 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EBSBrakeSwitch_c ) + 0.5);
25853 CAN_Sgn.UnsignedSgn &= 0x00000003;
25854 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25855 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
25856
25857 /* ...... "BrakePedalPos" (8|8, standard signal, unsigned int, little endian) */
25858 /* Add or substract 0.5 in order to round to nearest integer */
25859 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BrakePedalPos - ( 0 ) ) /
25860 0.4 + 0.5);
25861 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25862 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
25863
25864 /* ...... "ABSOffroadSwitch" (16|2, standard signal, unsigned int, little endian) */
25865 /* Add or substract 0.5 in order to round to nearest integer */
25866 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ABSOffroadSwitch ) + 0.5);
25867 CAN_Sgn.UnsignedSgn &= 0x00000003;
25868 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25869
25870 /* ...... "ASROffroadSwitch" (18|2, standard signal, unsigned int, little endian) */
25871 /* Add or substract 0.5 in order to round to nearest integer */
25872 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASROffroadSwitch ) + 0.5);
25873 CAN_Sgn.UnsignedSgn &= 0x00000003;
25874 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25875 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25876
25877 /* ...... "ASRHillHolderSwitch" (20|2, standard signal, unsigned int, little endian) */
25878 /* Add or substract 0.5 in order to round to nearest integer */
25879 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ASRHillHolderSwitch ) + 0.5);
25880 CAN_Sgn.UnsignedSgn &= 0x00000003;
25881 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25882 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25883
25884 /* ...... "TractionCtrlOverrideSwitch" (22|2, standard signal, unsigned int, little endian) */
25885 /* Add or substract 0.5 in order to round to nearest integer */
25886 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TractionCtrlOverrideSwitch )
25887 + 0.5);
25888 CAN_Sgn.UnsignedSgn &= 0x00000003;
25889 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25890 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
25891
25892 /* ...... "AccelInterlockSwitch" (24|2, standard signal, unsigned int, little endian) */
25893 /* Add or substract 0.5 in order to round to nearest integer */
25894 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AccelInterlockSwitch ) + 0.5);
25895 CAN_Sgn.UnsignedSgn &= 0x00000003;
25896 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25897
25898 /* ...... "EngDerateSwitch" (26|2, standard signal, unsigned int, little endian) */
25899 /* Add or substract 0.5 in order to round to nearest integer */
25900 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngDerateSwitch ) + 0.5);
25901 CAN_Sgn.UnsignedSgn &= 0x00000003;
25902 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25903 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25904
25905 /* ...... "EngAuxShutdownSwitch" (28|2, standard signal, unsigned int, little endian) */
25906 /* Add or substract 0.5 in order to round to nearest integer */
25907 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngAuxShutdownSwitch ) + 0.5);
25908 CAN_Sgn.UnsignedSgn &= 0x00000003;
25909 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25910 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25911
25912 /* ...... "RemoteAccelEnableSwitch" (30|2, standard signal, unsigned int, little endian) */
25913 /* Add or substract 0.5 in order to round to nearest integer */
25914 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.RemoteAccelEnableSwitch ) +
25915 0.5);
25916 CAN_Sgn.UnsignedSgn &= 0x00000003;
25917 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25918 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
25919
25920 /* ...... "EngRetarderSelection" (32|8, standard signal, unsigned int, little endian) */
25921 /* Add or substract 0.5 in order to round to nearest integer */
25922 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EngRetarderSelection - ( 0 )
25923 ) / 0.4 + 0.5);
25924 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25925 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
25926
25927 /* ...... "ABSFullyOperational" (40|2, standard signal, unsigned int, little endian) */
25928 /* Add or substract 0.5 in order to round to nearest integer */
25929 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ABSFullyOperational ) + 0.5);
25930 CAN_Sgn.UnsignedSgn &= 0x00000003;
25931 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25932
25933 /* ...... "EBSRedWarningSignal" (42|2, standard signal, unsigned int, little endian) */
25934 /* Add or substract 0.5 in order to round to nearest integer */
25935 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.EBSRedWarningSignal ) + 0.5);
25936 CAN_Sgn.UnsignedSgn &= 0x00000003;
25937 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25938 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25939
25940 /* ...... "ABS_EBSAmberWarningSignal" (44|2, standard signal, unsigned int, little endian) */
25941 /* Add or substract 0.5 in order to round to nearest integer */
25942 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ABS_EBSAmberWarningSignal )
25943 + 0.5);
25944 CAN_Sgn.UnsignedSgn &= 0x00000003;
25945 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25946 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25947
25948 /* ...... "ATC_ASRInformationSignal" (46|2, standard signal, unsigned int, little endian) */
25949 /* Add or substract 0.5 in order to round to nearest integer */
25950 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ATC_ASRInformationSignal ) +
25951 0.5);
25952 CAN_Sgn.UnsignedSgn &= 0x00000003;
25953 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25954 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
25955
25956 /* ...... "SrcAddrssOfCtrllngDvcFrBrkCntrl" (48|8, standard signal, unsigned int, little endian) */
25957 /* Add or substract 0.5 in order to round to nearest integer */
25958 CAN_Sgn.UnsignedSgn = (UInt32)
25959 (( L4_MABX_B.SrcAddrssOfCtrllngDvcFrBrkCntrl ) + 0.5);
25960 CAN_Sgn.UnsignedSgn &= 0x000000FF;
25961 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
25962
25963 /* ...... "HaltBrakeSwitch" (58|2, standard signal, unsigned int, little endian) */
25964 /* Add or substract 0.5 in order to round to nearest integer */
25965 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.HaltBrakeSwitch ) + 0.5);
25966 CAN_Sgn.UnsignedSgn &= 0x00000003;
25967 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 2;
25968 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25969
25970 /* ...... "TrailerABSStatus" (60|2, standard signal, unsigned int, little endian) */
25971 /* Add or substract 0.5 in order to round to nearest integer */
25972 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.TrailerABSStatus ) + 0.5);
25973 CAN_Sgn.UnsignedSgn &= 0x00000003;
25974 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 4;
25975 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25976
25977 /* ...... "TrctrMntdTrilerABSWarningSignal" (62|2, standard signal, unsigned int, little endian) */
25978 /* Add or substract 0.5 in order to round to nearest integer */
25979 CAN_Sgn.UnsignedSgn = (UInt32)
25980 (( L4_MABX_B.TrctrMntdTrilerABSWarningSignal ) + 0.5);
25981 CAN_Sgn.UnsignedSgn &= 0x00000003;
25982 CAN_Sgn.UnsignedSgn = ((UInt32)CAN_Sgn.UnsignedSgn) << 6;
25983 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
25984 }
25985
25986 /* mask unused bits with '1' */
25987 CAN_Msg[7] |= 0x03;
25988
25989 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
25990 can_tp1_msg_send(can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B], 8,
25991 &(CAN_Msg[0]), delayTime);
25992 }
25993 }
25994
25995 /* End of Outputs for SubSystem: '<S880>/EBC1_TX' */
25996
25997 /* End of Outputs for SubSystem: '<S815>/CAN_TX_100ms' */
25998
25999 /* DiscretePulseGenerator: '<S1044>/Flash' */
26000 L4_MABX_B.Flash = (L4_MABX_DW.clockTickCounter_j < L4_MABX_P.Flash_Duty) &&
26001 (L4_MABX_DW.clockTickCounter_j >= 0) ? L4_MABX_P.Flash_Amp : 0.0;
26002 if (L4_MABX_DW.clockTickCounter_j >= L4_MABX_P.Flash_Period - 1.0) {
26003 L4_MABX_DW.clockTickCounter_j = 0;
26004 } else {
26005 L4_MABX_DW.clockTickCounter_j++;
26006 }
26007
26008 /* End of DiscretePulseGenerator: '<S1044>/Flash' */
26009 /* user code (Output function Trailer for TID3) */
26010
26011 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
26012 /* EventChannel: 0 */
26013 if (tid == 0) {
26014 DSXCP_service(0);
26015 }
26016
26017 /* If subsystem generates rate grouping Output functions,
26018 * when tid is used in Output function for one rate,
26019 * all Output functions include tid as a local variable.
26020 * As result, some Output functions may have unused tid.
26021 */
26022 UNUSED_PARAMETER(tid);
26023}
26024
26025/* Model update function for TID3 */
26026void L4_MABX_update3(void) /* Sample time: [0.1s, 0.0s] */
26027{
26028 /* Update for Atomic SubSystem: '<S815>/CAN_TX_100ms' */
26029
26030 /* Update for Enabled SubSystem: '<S852>/Rolling_15_counter' incorporates:
26031 * EnablePort: '<S894>/Enable'
26032 */
26033 if (L4_MABX_B.TmpRTBAtHiddenBuf_InsertedFor_R) {
26034 /* Update for UnitDelay: '<S894>/Unit_Delay' */
26035 L4_MABX_DW.Unit_Delay_DSTATE = L4_MABX_B.FixPtSwitch;
26036 }
26037
26038 /* End of Update for SubSystem: '<S852>/Rolling_15_counter' */
26039
26040 /* End of Update for SubSystem: '<S815>/CAN_TX_100ms' */
26041
26042 /* Update for RateTransition: '<S1044>/TmpRTBAtANDInport1' */
26043 L4_MABX_DW.TmpRTBAtANDInport1_Buffer0 = L4_MABX_B.Flash;
26044}
26045
26046/* Model output function for TID4 */
26047void L4_MABX_output4(void) /* Sample time: [0.25s, 0.0s] */
26048{
26049 int_T tid = 4;
26050
26051 /* user code (Output function Trailer for TID4) */
26052
26053 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
26054 /* EventChannel: 0 */
26055 if (tid == 0) {
26056 DSXCP_service(0);
26057 }
26058
26059 /* If subsystem generates rate grouping Output functions,
26060 * when tid is used in Output function for one rate,
26061 * all Output functions include tid as a local variable.
26062 * As result, some Output functions may have unused tid.
26063 */
26064 UNUSED_PARAMETER(tid);
26065}
26066
26067/* Model update function for TID4 */
26068void L4_MABX_update4(void) /* Sample time: [0.25s, 0.0s] */
26069{
26070 /* (no update code required) */
26071}
26072
26073/* Model output function for TID5 */
26074void L4_MABX_output5(void) /* Sample time: [0.5s, 0.0s] */
26075{
26076 int_T tid = 5;
26077 boolean_T zcEvent;
26078 uint32_T q0;
26079 uint32_T qY;
26080
26081 /* S-Function (rti_commonblock): '<S28>/S-Function1' */
26082 /* This comment workarounds a code generation problem */
26083
26084 /* dSPACE RTICAN Status block */
26085 /* ... read status variables of the CAN microcontroller */
26086 {
26087 UInt32 loop_counter, memory, j;
26088 for (j=0;j<=9;j++) {
26089 rtican_type1_tq_error[0][6] = can_tp1_service_read
26090 (can_type1_service_M1_C1[j]);
26091 loop_counter = 0;
26092 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
26093 (can_type1_service_M1_C1[j]))== DSMCOM_BUFFER_OVERFLOW) {
26094 loop_counter++;
26095 if (loop_counter > MAX_LOOP) {
26096 memory = rtican_type1_error_level;
26097 rtican_type1_error_level = 1;
26098 rtican_type1_tq_err_sig(0, 6);
26099 rtican_type1_error_level = memory;
26100 break;
26101 }
26102 }
26103
26104 if (j==CANTP1_M1_C1_RXLost) {
26105 rtican_type1_tq_error[0][6] = can_tp1_service_read
26106 (can_type1_service_M1_C1[CANTP1_M1_C1_DataLost]);
26107 loop_counter = 0;
26108 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
26109 (can_type1_service_M1_C1[CANTP1_M1_C1_DataLost]))==
26110 DSMCOM_BUFFER_OVERFLOW) {
26111 loop_counter++;
26112 if (loop_counter > MAX_LOOP) {
26113 memory = rtican_type1_error_level;
26114 rtican_type1_error_level = 1;
26115 rtican_type1_tq_err_sig(0, 6);
26116 rtican_type1_error_level = memory;
26117 break;
26118 }
26119 }
26120 }
26121 }
26122
26123 L4_MABX_B.SFunction1_o1_kx = (UInt32)
26124 can_type1_service_M1_C1[CANTP1_M1_C1_Status]->data0;
26125 DIAG_CAN1_Count_Stuff_Errors = (UInt32)
26126 can_type1_service_M1_C1[CANTP1_M1_C1_StuffErrors]->data0;
26127 DIAG_CAN1_Count_Format_Errors = (UInt32)
26128 can_type1_service_M1_C1[CANTP1_M1_C1_FormatErrors]->data0;
26129 DIAG_CAN1_Count_Ack_Errors = (UInt32)
26130 can_type1_service_M1_C1[CANTP1_M1_C1_AckErrors]->data0;
26131 DIAG_CAN1_Count_Bit0_Errors = (UInt32)
26132 can_type1_service_M1_C1[CANTP1_M1_C1_Bit0Errors]->data0;
26133 DIAG_CAN1_Count_Bit1_Errors = (UInt32)
26134 can_type1_service_M1_C1[CANTP1_M1_C1_Bit1Errors]->data0;
26135 DIAG_CAN1_Count_CRC_Errors = (UInt32)
26136 can_type1_service_M1_C1[CANTP1_M1_C1_CRCErrors]->data0;
26137 DIAG_CAN1_Count_RX_Lost = (UInt32)
26138 (can_type1_service_M1_C1[CANTP1_M1_C1_RXLost]->data0 +
26139 can_type1_service_M1_C1[CANTP1_M1_C1_DataLost]->data0);
26140 DIAG_CAN1_Count_RX_OK = (UInt32) can_type1_service_M1_C1[CANTP1_M1_C1_RXOK
26141 ]->data0;
26142 DIAG_CAN1_Count_TX_OK = (UInt32) can_type1_service_M1_C1[CANTP1_M1_C1_TXOK
26143 ]->data0;
26144 }
26145
26146 /* DataTypeConversion: '<S1>/Data Type Conversion' */
26147 DIAG_CAN1_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26148 ((int32_T)L4_MABX_B.SFunction1_o1_kx);
26149
26150 /* RelationalOperator: '<S22>/Operator' incorporates:
26151 * Constant: '<S1>/Constant'
26152 */
26153 L4_MABX_B.Operator_eu = (L4_MABX_P.Constant_Value_cq == DIAG_CAN1_Status);
26154
26155 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_1' incorporates:
26156 * EnablePort: '<S11>/Enable'
26157 */
26158 if (L4_MABX_B.Operator_eu) {
26159 /* Reshape: '<S30>/Reshape' incorporates:
26160 * Constant: '<S30>/Constant'
26161 */
26162 L4_MABX_B.Reshape_g[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_l[0];
26163 L4_MABX_B.Reshape_g[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_l[1];
26164
26165 /* UnitDelay: '<S30>/Unit_Delay' */
26166 L4_MABX_B.Unit_Delay_h4 = L4_MABX_DW.Unit_Delay_DSTATE_f1;
26167
26168 /* UnitDelay: '<S31>/Unit Delay' */
26169 L4_MABX_B.UnitDelay_f = L4_MABX_DW.UnitDelay_DSTATE_j;
26170
26171 /* Switch: '<S34>/Switch1' incorporates:
26172 * Constant: '<S31>/E'
26173 * Constant: '<S31>/IV'
26174 * Switch: '<S33>/Switch1'
26175 */
26176 if (L4_MABX_B.Unit_Delay_h4) {
26177 L4_MABX_B.Switch1_o = L4_MABX_P.IV_Value_m;
26178 } else {
26179 if (L4_MABX_P.E_Value) {
26180 /* Sum: '<S31>/Subtract' incorporates:
26181 * Constant: '<S31>/Constant'
26182 * Switch: '<S33>/Switch1'
26183 */
26184 q0 = L4_MABX_P.Constant_Value_jc;
26185 qY = q0 + L4_MABX_B.UnitDelay_f;
26186 if (qY < q0) {
26187 qY = MAX_uint32_T;
26188 }
26189
26190 L4_MABX_B.Subtract_ot = qY;
26191
26192 /* End of Sum: '<S31>/Subtract' */
26193
26194 /* Switch: '<S33>/Switch1' */
26195 L4_MABX_B.Switch1_az = L4_MABX_B.Subtract_ot;
26196 } else {
26197 /* Switch: '<S33>/Switch1' */
26198 L4_MABX_B.Switch1_az = L4_MABX_B.UnitDelay_f;
26199 }
26200
26201 L4_MABX_B.Switch1_o = L4_MABX_B.Switch1_az;
26202 }
26203
26204 /* End of Switch: '<S34>/Switch1' */
26205
26206 /* Selector: '<S30>/Selector' */
26207 L4_MABX_B.Selector_d = L4_MABX_B.Reshape_g[(int32_T)L4_MABX_B.Switch1_o - 1];
26208
26209 /* Outputs for Triggered SubSystem: '<S11>/CAN_TYPE1_BOR_M1_C1' incorporates:
26210 * TriggerPort: '<S29>/Trigger'
26211 */
26212 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE == POS_ZCSIG) !=
26213 (int32_T)L4_MABX_B.Selector_d) &&
26214 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE !=
26215 UNINITIALIZED_ZCSIG));
26216 if (zcEvent) {
26217 /* S-Function (rti_commonblock): '<S29>/S-Function1' */
26218 /* This comment workarounds a code generation problem */
26219
26220 /* dSPACE RTICAN Bus Off Recovery block */
26221 /* ... Perform software-reset of the CAN microcontroller */
26222 {
26223 UInt32 loop_counter, memory;
26224 loop_counter = 0;
26225 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_BOff_return
26226 (can_type1_channel_M1_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26227 loop_counter++;
26228 if (loop_counter > MAX_LOOP) {
26229 memory = rtican_type1_error_level;
26230 rtican_type1_error_level = 1;
26231 rtican_type1_tq_err_sig(0, 0);
26232 rtican_type1_error_level = memory;
26233 break;
26234 }
26235 }
26236
26237 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_all_wakeup
26238 (can_type1_channel_M1_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26239 loop_counter++;
26240 if (loop_counter > MAX_LOOP) {
26241 memory = rtican_type1_error_level;
26242 rtican_type1_error_level = 1;
26243 rtican_type1_tq_err_sig(0, 0);
26244 rtican_type1_error_level = memory;
26245 break;
26246 }
26247 }
26248 }
26249 }
26250
26251 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE = L4_MABX_B.Selector_d;
26252
26253 /* End of Outputs for SubSystem: '<S11>/CAN_TYPE1_BOR_M1_C1' */
26254
26255 /* RelationalOperator: '<S32>/Operator' */
26256 L4_MABX_B.Operator_f5 = (L4_MABX_B.Switch1_o == L4_MABX_ConstB.Width_p);
26257 }
26258
26259 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
26260
26261 /* S-Function (rti_commonblock): '<S20>/S-Function1' */
26262 /* This comment workarounds a code generation problem */
26263
26264 /* dSPACE RTICAN Status block */
26265 /* ... read status variables of the CAN microcontroller */
26266 {
26267 UInt32 loop_counter, memory, j;
26268 for (j=0;j<=9;j++) {
26269 rtican_type1_tq_error[2][6] = can_tp1_service_read
26270 (can_type1_service_M3_C1[j]);
26271 loop_counter = 0;
26272 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26273 (can_type1_service_M3_C1[j]))== DSMCOM_BUFFER_OVERFLOW) {
26274 loop_counter++;
26275 if (loop_counter > MAX_LOOP) {
26276 memory = rtican_type1_error_level;
26277 rtican_type1_error_level = 1;
26278 rtican_type1_tq_err_sig(2, 6);
26279 rtican_type1_error_level = memory;
26280 break;
26281 }
26282 }
26283
26284 if (j==CANTP1_M3_C1_RXLost) {
26285 rtican_type1_tq_error[2][6] = can_tp1_service_read
26286 (can_type1_service_M3_C1[CANTP1_M3_C1_DataLost]);
26287 loop_counter = 0;
26288 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26289 (can_type1_service_M3_C1[CANTP1_M3_C1_DataLost]))==
26290 DSMCOM_BUFFER_OVERFLOW) {
26291 loop_counter++;
26292 if (loop_counter > MAX_LOOP) {
26293 memory = rtican_type1_error_level;
26294 rtican_type1_error_level = 1;
26295 rtican_type1_tq_err_sig(2, 6);
26296 rtican_type1_error_level = memory;
26297 break;
26298 }
26299 }
26300 }
26301 }
26302
26303 L4_MABX_B.SFunction1_o1_g3j = (UInt32)
26304 can_type1_service_M3_C1[CANTP1_M3_C1_Status]->data0;
26305 DIAG_CAN5_Count_Stuff_Errors = (UInt32)
26306 can_type1_service_M3_C1[CANTP1_M3_C1_StuffErrors]->data0;
26307 DIAG_CAN5_Count_Format_Errors = (UInt32)
26308 can_type1_service_M3_C1[CANTP1_M3_C1_FormatErrors]->data0;
26309 DIAG_CAN5_Count_Ack_Errors = (UInt32)
26310 can_type1_service_M3_C1[CANTP1_M3_C1_AckErrors]->data0;
26311 DIAG_CAN5_Count_Bit0_Errors = (UInt32)
26312 can_type1_service_M3_C1[CANTP1_M3_C1_Bit0Errors]->data0;
26313 DIAG_CAN5_Count_Bit1_Errors = (UInt32)
26314 can_type1_service_M3_C1[CANTP1_M3_C1_Bit1Errors]->data0;
26315 DIAG_CAN5_Count_CRC_Errors = (UInt32)
26316 can_type1_service_M3_C1[CANTP1_M3_C1_CRCErrors]->data0;
26317 DIAG_CAN5_Count_RX_Lost = (UInt32)
26318 (can_type1_service_M3_C1[CANTP1_M3_C1_RXLost]->data0 +
26319 can_type1_service_M3_C1[CANTP1_M3_C1_DataLost]->data0);
26320 DIAG_CAN5_Count_RX_OK = (UInt32) can_type1_service_M3_C1[CANTP1_M3_C1_RXOK
26321 ]->data0;
26322 DIAG_CAN5_Count_TX_OK = (UInt32) can_type1_service_M3_C1[CANTP1_M3_C1_TXOK
26323 ]->data0;
26324 }
26325
26326 /* DataTypeConversion: '<S1>/Data Type Conversion5' */
26327 DIAG_CAN5_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26328 ((int32_T)L4_MABX_B.SFunction1_o1_g3j);
26329
26330 /* RelationalOperator: '<S26>/Operator' incorporates:
26331 * Constant: '<S1>/Constant4'
26332 */
26333 L4_MABX_B.Operator_msz = (L4_MABX_P.Constant4_Value_np == DIAG_CAN5_Status);
26334
26335 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_5' incorporates:
26336 * EnablePort: '<S15>/Enable'
26337 */
26338 if (L4_MABX_B.Operator_msz) {
26339 /* Reshape: '<S54>/Reshape' incorporates:
26340 * Constant: '<S54>/Constant'
26341 */
26342 L4_MABX_B.Reshape_a[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_j[0];
26343 L4_MABX_B.Reshape_a[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_j[1];
26344
26345 /* UnitDelay: '<S54>/Unit_Delay' */
26346 L4_MABX_B.Unit_Delay_p1 = L4_MABX_DW.Unit_Delay_DSTATE_i5;
26347
26348 /* UnitDelay: '<S55>/Unit Delay' */
26349 L4_MABX_B.UnitDelay_j = L4_MABX_DW.UnitDelay_DSTATE_p;
26350
26351 /* Switch: '<S58>/Switch1' incorporates:
26352 * Constant: '<S55>/E'
26353 * Constant: '<S55>/IV'
26354 * Switch: '<S57>/Switch1'
26355 */
26356 if (L4_MABX_B.Unit_Delay_p1) {
26357 L4_MABX_B.Switch1_k = L4_MABX_P.IV_Value_h;
26358 } else {
26359 if (L4_MABX_P.E_Value_db) {
26360 /* Sum: '<S55>/Subtract' incorporates:
26361 * Constant: '<S55>/Constant'
26362 * Switch: '<S57>/Switch1'
26363 */
26364 q0 = L4_MABX_P.Constant_Value_jg;
26365 qY = q0 + L4_MABX_B.UnitDelay_j;
26366 if (qY < q0) {
26367 qY = MAX_uint32_T;
26368 }
26369
26370 L4_MABX_B.Subtract_m = qY;
26371
26372 /* End of Sum: '<S55>/Subtract' */
26373
26374 /* Switch: '<S57>/Switch1' */
26375 L4_MABX_B.Switch1_lh = L4_MABX_B.Subtract_m;
26376 } else {
26377 /* Switch: '<S57>/Switch1' */
26378 L4_MABX_B.Switch1_lh = L4_MABX_B.UnitDelay_j;
26379 }
26380
26381 L4_MABX_B.Switch1_k = L4_MABX_B.Switch1_lh;
26382 }
26383
26384 /* End of Switch: '<S58>/Switch1' */
26385
26386 /* Selector: '<S54>/Selector' */
26387 L4_MABX_B.Selector_p = L4_MABX_B.Reshape_a[(int32_T)L4_MABX_B.Switch1_k - 1];
26388
26389 /* Outputs for Triggered SubSystem: '<S15>/CAN_TYPE1_BOR_M3_C1' incorporates:
26390 * TriggerPort: '<S53>/Trigger'
26391 */
26392 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE == POS_ZCSIG) !=
26393 (int32_T)L4_MABX_B.Selector_p) &&
26394 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE !=
26395 UNINITIALIZED_ZCSIG));
26396 if (zcEvent) {
26397 /* S-Function (rti_commonblock): '<S53>/S-Function1' */
26398 /* This comment workarounds a code generation problem */
26399
26400 /* dSPACE RTICAN Bus Off Recovery block */
26401 /* ... Perform software-reset of the CAN microcontroller */
26402 {
26403 UInt32 loop_counter, memory;
26404 loop_counter = 0;
26405 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_BOff_return
26406 (can_type1_channel_M3_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26407 loop_counter++;
26408 if (loop_counter > MAX_LOOP) {
26409 memory = rtican_type1_error_level;
26410 rtican_type1_error_level = 1;
26411 rtican_type1_tq_err_sig(2, 0);
26412 rtican_type1_error_level = memory;
26413 break;
26414 }
26415 }
26416
26417 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_all_wakeup
26418 (can_type1_channel_M3_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26419 loop_counter++;
26420 if (loop_counter > MAX_LOOP) {
26421 memory = rtican_type1_error_level;
26422 rtican_type1_error_level = 1;
26423 rtican_type1_tq_err_sig(2, 0);
26424 rtican_type1_error_level = memory;
26425 break;
26426 }
26427 }
26428 }
26429 }
26430
26431 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE = L4_MABX_B.Selector_p;
26432
26433 /* End of Outputs for SubSystem: '<S15>/CAN_TYPE1_BOR_M3_C1' */
26434
26435 /* RelationalOperator: '<S56>/Operator' */
26436 L4_MABX_B.Operator_ho0 = (L4_MABX_B.Switch1_k == L4_MABX_ConstB.Width_a);
26437 }
26438
26439 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
26440
26441 /* S-Function (rti_commonblock): '<S21>/S-Function1' */
26442 /* This comment workarounds a code generation problem */
26443
26444 /* dSPACE RTICAN Status block */
26445 /* ... read status variables of the CAN microcontroller */
26446 {
26447 UInt32 loop_counter, memory, j;
26448 for (j=0;j<=9;j++) {
26449 rtican_type1_tq_error[2][6] = can_tp1_service_read
26450 (can_type1_service_M3_C2[j]);
26451 loop_counter = 0;
26452 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26453 (can_type1_service_M3_C2[j]))== DSMCOM_BUFFER_OVERFLOW) {
26454 loop_counter++;
26455 if (loop_counter > MAX_LOOP) {
26456 memory = rtican_type1_error_level;
26457 rtican_type1_error_level = 1;
26458 rtican_type1_tq_err_sig(2, 6);
26459 rtican_type1_error_level = memory;
26460 break;
26461 }
26462 }
26463
26464 if (j==CANTP1_M3_C2_RXLost) {
26465 rtican_type1_tq_error[2][6] = can_tp1_service_read
26466 (can_type1_service_M3_C2[CANTP1_M3_C2_DataLost]);
26467 loop_counter = 0;
26468 while ((rtican_type1_tq_error[2][6] = can_tp1_service_request
26469 (can_type1_service_M3_C2[CANTP1_M3_C2_DataLost]))==
26470 DSMCOM_BUFFER_OVERFLOW) {
26471 loop_counter++;
26472 if (loop_counter > MAX_LOOP) {
26473 memory = rtican_type1_error_level;
26474 rtican_type1_error_level = 1;
26475 rtican_type1_tq_err_sig(2, 6);
26476 rtican_type1_error_level = memory;
26477 break;
26478 }
26479 }
26480 }
26481 }
26482
26483 L4_MABX_B.SFunction1_o1_ar = (UInt32)
26484 can_type1_service_M3_C2[CANTP1_M3_C2_Status]->data0;
26485 DIAG_CAN6_Count_Stuff_Errors = (UInt32)
26486 can_type1_service_M3_C2[CANTP1_M3_C2_StuffErrors]->data0;
26487 DIAG_CAN6_Count_Format_Errors = (UInt32)
26488 can_type1_service_M3_C2[CANTP1_M3_C2_FormatErrors]->data0;
26489 DIAG_CAN6_Count_Ack_Errors = (UInt32)
26490 can_type1_service_M3_C2[CANTP1_M3_C2_AckErrors]->data0;
26491 DIAG_CAN6_Count_Bit0_Errors = (UInt32)
26492 can_type1_service_M3_C2[CANTP1_M3_C2_Bit0Errors]->data0;
26493 DIAG_CAN6_Count_Bit1_Errors = (UInt32)
26494 can_type1_service_M3_C2[CANTP1_M3_C2_Bit1Errors]->data0;
26495 DIAG_CAN6_Count_CRC_Errors = (UInt32)
26496 can_type1_service_M3_C2[CANTP1_M3_C2_CRCErrors]->data0;
26497 DIAG_CAN6_Count_RX_Lost = (UInt32)
26498 (can_type1_service_M3_C2[CANTP1_M3_C2_RXLost]->data0 +
26499 can_type1_service_M3_C2[CANTP1_M3_C2_DataLost]->data0);
26500 DIAG_CAN6_Count_RX_OK = (UInt32) can_type1_service_M3_C2[CANTP1_M3_C2_RXOK
26501 ]->data0;
26502 DIAG_CAN6_Count_TX_OK = (UInt32) can_type1_service_M3_C2[CANTP1_M3_C2_TXOK
26503 ]->data0;
26504 }
26505
26506 /* DataTypeConversion: '<S1>/Data Type Conversion4' */
26507 DIAG_CAN6_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26508 ((int32_T)L4_MABX_B.SFunction1_o1_ar);
26509
26510 /* RelationalOperator: '<S27>/Operator' incorporates:
26511 * Constant: '<S1>/Constant5'
26512 */
26513 L4_MABX_B.Operator_fvew = (L4_MABX_P.Constant5_Value_m == DIAG_CAN6_Status);
26514
26515 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_6' incorporates:
26516 * EnablePort: '<S16>/Enable'
26517 */
26518 if (L4_MABX_B.Operator_fvew) {
26519 /* Reshape: '<S60>/Reshape' incorporates:
26520 * Constant: '<S60>/Constant'
26521 */
26522 L4_MABX_B.Reshape_j[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_e[0];
26523 L4_MABX_B.Reshape_j[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_e[1];
26524
26525 /* UnitDelay: '<S60>/Unit_Delay' */
26526 L4_MABX_B.Unit_Delay_mw = L4_MABX_DW.Unit_Delay_DSTATE_l5;
26527
26528 /* UnitDelay: '<S61>/Unit Delay' */
26529 L4_MABX_B.UnitDelay_a = L4_MABX_DW.UnitDelay_DSTATE_dr;
26530
26531 /* Switch: '<S64>/Switch1' incorporates:
26532 * Constant: '<S61>/E'
26533 * Constant: '<S61>/IV'
26534 * Switch: '<S63>/Switch1'
26535 */
26536 if (L4_MABX_B.Unit_Delay_mw) {
26537 L4_MABX_B.Switch1_h = L4_MABX_P.IV_Value_ey;
26538 } else {
26539 if (L4_MABX_P.E_Value_c) {
26540 /* Sum: '<S61>/Subtract' incorporates:
26541 * Constant: '<S61>/Constant'
26542 * Switch: '<S63>/Switch1'
26543 */
26544 q0 = L4_MABX_P.Constant_Value_iu;
26545 qY = q0 + L4_MABX_B.UnitDelay_a;
26546 if (qY < q0) {
26547 qY = MAX_uint32_T;
26548 }
26549
26550 L4_MABX_B.Subtract_fc = qY;
26551
26552 /* End of Sum: '<S61>/Subtract' */
26553
26554 /* Switch: '<S63>/Switch1' */
26555 L4_MABX_B.Switch1_b = L4_MABX_B.Subtract_fc;
26556 } else {
26557 /* Switch: '<S63>/Switch1' */
26558 L4_MABX_B.Switch1_b = L4_MABX_B.UnitDelay_a;
26559 }
26560
26561 L4_MABX_B.Switch1_h = L4_MABX_B.Switch1_b;
26562 }
26563
26564 /* End of Switch: '<S64>/Switch1' */
26565
26566 /* Selector: '<S60>/Selector' */
26567 L4_MABX_B.Selector_h = L4_MABX_B.Reshape_j[(int32_T)L4_MABX_B.Switch1_h - 1];
26568
26569 /* Outputs for Triggered SubSystem: '<S16>/CAN_TYPE1_BOR_M3_C2' incorporates:
26570 * TriggerPort: '<S59>/Trigger'
26571 */
26572 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE == POS_ZCSIG) !=
26573 (int32_T)L4_MABX_B.Selector_h) &&
26574 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE !=
26575 UNINITIALIZED_ZCSIG));
26576 if (zcEvent) {
26577 /* S-Function (rti_commonblock): '<S59>/S-Function1' */
26578 /* This comment workarounds a code generation problem */
26579
26580 /* dSPACE RTICAN Bus Off Recovery block */
26581 /* ... Perform software-reset of the CAN microcontroller */
26582 {
26583 UInt32 loop_counter, memory;
26584 loop_counter = 0;
26585 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_BOff_return
26586 (can_type1_channel_M3_C2)) == DSMCOM_BUFFER_OVERFLOW) {
26587 loop_counter++;
26588 if (loop_counter > MAX_LOOP) {
26589 memory = rtican_type1_error_level;
26590 rtican_type1_error_level = 1;
26591 rtican_type1_tq_err_sig(2, 0);
26592 rtican_type1_error_level = memory;
26593 break;
26594 }
26595 }
26596
26597 while ((rtican_type1_tq_error[2][0] = can_tp1_channel_all_wakeup
26598 (can_type1_channel_M3_C2)) == DSMCOM_BUFFER_OVERFLOW) {
26599 loop_counter++;
26600 if (loop_counter > MAX_LOOP) {
26601 memory = rtican_type1_error_level;
26602 rtican_type1_error_level = 1;
26603 rtican_type1_tq_err_sig(2, 0);
26604 rtican_type1_error_level = memory;
26605 break;
26606 }
26607 }
26608 }
26609 }
26610
26611 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE = L4_MABX_B.Selector_h;
26612
26613 /* End of Outputs for SubSystem: '<S16>/CAN_TYPE1_BOR_M3_C2' */
26614
26615 /* RelationalOperator: '<S62>/Operator' */
26616 L4_MABX_B.Operator_bgt = (L4_MABX_B.Switch1_h == L4_MABX_ConstB.Width);
26617 }
26618
26619 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
26620
26621 /* S-Function (rti_commonblock): '<S18>/S-Function1' */
26622 /* This comment workarounds a code generation problem */
26623
26624 /* dSPACE RTICAN Status block */
26625 /* ... read status variables of the CAN microcontroller */
26626 {
26627 UInt32 loop_counter, memory, j;
26628 for (j=0;j<=9;j++) {
26629 rtican_type1_tq_error[1][6] = can_tp1_service_read
26630 (can_type1_service_M2_C1[j]);
26631 loop_counter = 0;
26632 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
26633 (can_type1_service_M2_C1[j]))== DSMCOM_BUFFER_OVERFLOW) {
26634 loop_counter++;
26635 if (loop_counter > MAX_LOOP) {
26636 memory = rtican_type1_error_level;
26637 rtican_type1_error_level = 1;
26638 rtican_type1_tq_err_sig(1, 6);
26639 rtican_type1_error_level = memory;
26640 break;
26641 }
26642 }
26643
26644 if (j==CANTP1_M2_C1_RXLost) {
26645 rtican_type1_tq_error[1][6] = can_tp1_service_read
26646 (can_type1_service_M2_C1[CANTP1_M2_C1_DataLost]);
26647 loop_counter = 0;
26648 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
26649 (can_type1_service_M2_C1[CANTP1_M2_C1_DataLost]))==
26650 DSMCOM_BUFFER_OVERFLOW) {
26651 loop_counter++;
26652 if (loop_counter > MAX_LOOP) {
26653 memory = rtican_type1_error_level;
26654 rtican_type1_error_level = 1;
26655 rtican_type1_tq_err_sig(1, 6);
26656 rtican_type1_error_level = memory;
26657 break;
26658 }
26659 }
26660 }
26661 }
26662
26663 L4_MABX_B.SFunction1_o1_h4 = (UInt32)
26664 can_type1_service_M2_C1[CANTP1_M2_C1_Status]->data0;
26665 DIAG_CAN3_Count_Stuff_Errors = (UInt32)
26666 can_type1_service_M2_C1[CANTP1_M2_C1_StuffErrors]->data0;
26667 DIAG_CAN3_Count_Format_Errors = (UInt32)
26668 can_type1_service_M2_C1[CANTP1_M2_C1_FormatErrors]->data0;
26669 DIAG_CAN3_Count_Ack_Errors = (UInt32)
26670 can_type1_service_M2_C1[CANTP1_M2_C1_AckErrors]->data0;
26671 DIAG_CAN3_Count_Bit0_Errors = (UInt32)
26672 can_type1_service_M2_C1[CANTP1_M2_C1_Bit0Errors]->data0;
26673 DIAG_CAN3_Count_Bit1_Errors = (UInt32)
26674 can_type1_service_M2_C1[CANTP1_M2_C1_Bit1Errors]->data0;
26675 DIAG_CAN3_Count_CRC_Errors = (UInt32)
26676 can_type1_service_M2_C1[CANTP1_M2_C1_CRCErrors]->data0;
26677 DIAG_CAN3_Count_RX_Lost = (UInt32)
26678 (can_type1_service_M2_C1[CANTP1_M2_C1_RXLost]->data0 +
26679 can_type1_service_M2_C1[CANTP1_M2_C1_DataLost]->data0);
26680 DIAG_CAN3_Count_RX_OK = (UInt32) can_type1_service_M2_C1[CANTP1_M2_C1_RXOK
26681 ]->data0;
26682 DIAG_CAN3_Count_TX_OK = (UInt32) can_type1_service_M2_C1[CANTP1_M2_C1_TXOK
26683 ]->data0;
26684 }
26685
26686 /* DataTypeConversion: '<S1>/Data Type Conversion3' */
26687 DIAG_CAN3_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26688 ((int32_T)L4_MABX_B.SFunction1_o1_h4);
26689
26690 /* RelationalOperator: '<S24>/Operator' incorporates:
26691 * Constant: '<S1>/Constant1'
26692 */
26693 L4_MABX_B.Operator_bsh = (L4_MABX_P.Constant1_Value_c0 == DIAG_CAN3_Status);
26694
26695 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_3' incorporates:
26696 * EnablePort: '<S13>/Enable'
26697 */
26698 if (L4_MABX_B.Operator_bsh) {
26699 /* Reshape: '<S42>/Reshape' incorporates:
26700 * Constant: '<S42>/Constant'
26701 */
26702 L4_MABX_B.Reshape_i[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_o[0];
26703 L4_MABX_B.Reshape_i[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_o[1];
26704
26705 /* UnitDelay: '<S42>/Unit_Delay' */
26706 L4_MABX_B.Unit_Delay_m0 = L4_MABX_DW.Unit_Delay_DSTATE_h41;
26707
26708 /* UnitDelay: '<S43>/Unit Delay' */
26709 L4_MABX_B.UnitDelay_d = L4_MABX_DW.UnitDelay_DSTATE_dr4;
26710
26711 /* Switch: '<S46>/Switch1' incorporates:
26712 * Constant: '<S43>/E'
26713 * Constant: '<S43>/IV'
26714 * Switch: '<S45>/Switch1'
26715 */
26716 if (L4_MABX_B.Unit_Delay_m0) {
26717 L4_MABX_B.Switch1_k4 = L4_MABX_P.IV_Value_b;
26718 } else {
26719 if (L4_MABX_P.E_Value_d) {
26720 /* Sum: '<S43>/Subtract' incorporates:
26721 * Constant: '<S43>/Constant'
26722 * Switch: '<S45>/Switch1'
26723 */
26724 q0 = L4_MABX_P.Constant_Value_h3;
26725 qY = q0 + L4_MABX_B.UnitDelay_d;
26726 if (qY < q0) {
26727 qY = MAX_uint32_T;
26728 }
26729
26730 L4_MABX_B.Subtract_h = qY;
26731
26732 /* End of Sum: '<S43>/Subtract' */
26733
26734 /* Switch: '<S45>/Switch1' */
26735 L4_MABX_B.Switch1_fr = L4_MABX_B.Subtract_h;
26736 } else {
26737 /* Switch: '<S45>/Switch1' */
26738 L4_MABX_B.Switch1_fr = L4_MABX_B.UnitDelay_d;
26739 }
26740
26741 L4_MABX_B.Switch1_k4 = L4_MABX_B.Switch1_fr;
26742 }
26743
26744 /* End of Switch: '<S46>/Switch1' */
26745
26746 /* Selector: '<S42>/Selector' */
26747 L4_MABX_B.Selector_gs = L4_MABX_B.Reshape_i[(int32_T)L4_MABX_B.Switch1_k4 -
26748 1];
26749
26750 /* Outputs for Triggered SubSystem: '<S13>/CAN_TYPE1_BOR_M2_C1' incorporates:
26751 * TriggerPort: '<S41>/Trigger'
26752 */
26753 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE == POS_ZCSIG) !=
26754 (int32_T)L4_MABX_B.Selector_gs) &&
26755 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE !=
26756 UNINITIALIZED_ZCSIG));
26757 if (zcEvent) {
26758 /* S-Function (rti_commonblock): '<S41>/S-Function1' */
26759 /* This comment workarounds a code generation problem */
26760
26761 /* dSPACE RTICAN Bus Off Recovery block */
26762 /* ... Perform software-reset of the CAN microcontroller */
26763 {
26764 UInt32 loop_counter, memory;
26765 loop_counter = 0;
26766 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_BOff_return
26767 (can_type1_channel_M2_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26768 loop_counter++;
26769 if (loop_counter > MAX_LOOP) {
26770 memory = rtican_type1_error_level;
26771 rtican_type1_error_level = 1;
26772 rtican_type1_tq_err_sig(1, 0);
26773 rtican_type1_error_level = memory;
26774 break;
26775 }
26776 }
26777
26778 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_all_wakeup
26779 (can_type1_channel_M2_C1)) == DSMCOM_BUFFER_OVERFLOW) {
26780 loop_counter++;
26781 if (loop_counter > MAX_LOOP) {
26782 memory = rtican_type1_error_level;
26783 rtican_type1_error_level = 1;
26784 rtican_type1_tq_err_sig(1, 0);
26785 rtican_type1_error_level = memory;
26786 break;
26787 }
26788 }
26789 }
26790 }
26791
26792 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE = L4_MABX_B.Selector_gs;
26793
26794 /* End of Outputs for SubSystem: '<S13>/CAN_TYPE1_BOR_M2_C1' */
26795
26796 /* RelationalOperator: '<S44>/Operator' */
26797 L4_MABX_B.Operator_dh = (L4_MABX_B.Switch1_k4 == L4_MABX_ConstB.Width_iw);
26798 }
26799
26800 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
26801
26802 /* S-Function (rti_commonblock): '<S19>/S-Function1' */
26803 /* This comment workarounds a code generation problem */
26804
26805 /* dSPACE RTICAN Status block */
26806 /* ... read status variables of the CAN microcontroller */
26807 {
26808 UInt32 loop_counter, memory, j;
26809 for (j=0;j<=9;j++) {
26810 rtican_type1_tq_error[1][6] = can_tp1_service_read
26811 (can_type1_service_M2_C2[j]);
26812 loop_counter = 0;
26813 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
26814 (can_type1_service_M2_C2[j]))== DSMCOM_BUFFER_OVERFLOW) {
26815 loop_counter++;
26816 if (loop_counter > MAX_LOOP) {
26817 memory = rtican_type1_error_level;
26818 rtican_type1_error_level = 1;
26819 rtican_type1_tq_err_sig(1, 6);
26820 rtican_type1_error_level = memory;
26821 break;
26822 }
26823 }
26824
26825 if (j==CANTP1_M2_C2_RXLost) {
26826 rtican_type1_tq_error[1][6] = can_tp1_service_read
26827 (can_type1_service_M2_C2[CANTP1_M2_C2_DataLost]);
26828 loop_counter = 0;
26829 while ((rtican_type1_tq_error[1][6] = can_tp1_service_request
26830 (can_type1_service_M2_C2[CANTP1_M2_C2_DataLost]))==
26831 DSMCOM_BUFFER_OVERFLOW) {
26832 loop_counter++;
26833 if (loop_counter > MAX_LOOP) {
26834 memory = rtican_type1_error_level;
26835 rtican_type1_error_level = 1;
26836 rtican_type1_tq_err_sig(1, 6);
26837 rtican_type1_error_level = memory;
26838 break;
26839 }
26840 }
26841 }
26842 }
26843
26844 L4_MABX_B.SFunction1_o1_ma = (UInt32)
26845 can_type1_service_M2_C2[CANTP1_M2_C2_Status]->data0;
26846 DIAG_CAN4_Count_Stuff_Errors = (UInt32)
26847 can_type1_service_M2_C2[CANTP1_M2_C2_StuffErrors]->data0;
26848 DIAG_CAN4_Count_Format_Errors = (UInt32)
26849 can_type1_service_M2_C2[CANTP1_M2_C2_FormatErrors]->data0;
26850 DIAG_CAN4_Count_Ack_Errors = (UInt32)
26851 can_type1_service_M2_C2[CANTP1_M2_C2_AckErrors]->data0;
26852 DIAG_CAN4_Count_Bit0_Errors = (UInt32)
26853 can_type1_service_M2_C2[CANTP1_M2_C2_Bit0Errors]->data0;
26854 DIAG_CAN4_Count_Bit1_Errors = (UInt32)
26855 can_type1_service_M2_C2[CANTP1_M2_C2_Bit1Errors]->data0;
26856 DIAG_CAN4_Count_CRC_Errors = (UInt32)
26857 can_type1_service_M2_C2[CANTP1_M2_C2_CRCErrors]->data0;
26858 DIAG_CAN4_Count_RX_Lost = (UInt32)
26859 (can_type1_service_M2_C2[CANTP1_M2_C2_RXLost]->data0 +
26860 can_type1_service_M2_C2[CANTP1_M2_C2_DataLost]->data0);
26861 DIAG_CAN4_Count_RX_OK = (UInt32) can_type1_service_M2_C2[CANTP1_M2_C2_RXOK
26862 ]->data0;
26863 DIAG_CAN4_Count_TX_OK = (UInt32) can_type1_service_M2_C2[CANTP1_M2_C2_TXOK
26864 ]->data0;
26865 }
26866
26867 /* DataTypeConversion: '<S1>/Data Type Conversion2' */
26868 DIAG_CAN4_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
26869 ((int32_T)L4_MABX_B.SFunction1_o1_ma);
26870
26871 /* RelationalOperator: '<S25>/Operator' incorporates:
26872 * Constant: '<S1>/Constant3'
26873 */
26874 L4_MABX_B.Operator_bw3 = (L4_MABX_P.Constant3_Value_h == DIAG_CAN4_Status);
26875
26876 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_4' incorporates:
26877 * EnablePort: '<S14>/Enable'
26878 */
26879 if (L4_MABX_B.Operator_bw3) {
26880 /* Reshape: '<S48>/Reshape' incorporates:
26881 * Constant: '<S48>/Constant'
26882 */
26883 L4_MABX_B.Reshape_n[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_n[0];
26884 L4_MABX_B.Reshape_n[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_n[1];
26885
26886 /* UnitDelay: '<S48>/Unit_Delay' */
26887 L4_MABX_B.Unit_Delay_fl = L4_MABX_DW.Unit_Delay_DSTATE_mq;
26888
26889 /* UnitDelay: '<S49>/Unit Delay' */
26890 L4_MABX_B.UnitDelay_l = L4_MABX_DW.UnitDelay_DSTATE_h;
26891
26892 /* Switch: '<S52>/Switch1' incorporates:
26893 * Constant: '<S49>/E'
26894 * Constant: '<S49>/IV'
26895 * Switch: '<S51>/Switch1'
26896 */
26897 if (L4_MABX_B.Unit_Delay_fl) {
26898 L4_MABX_B.Switch1_e = L4_MABX_P.IV_Value_k;
26899 } else {
26900 if (L4_MABX_P.E_Value_m) {
26901 /* Sum: '<S49>/Subtract' incorporates:
26902 * Constant: '<S49>/Constant'
26903 * Switch: '<S51>/Switch1'
26904 */
26905 q0 = L4_MABX_P.Constant_Value_o0;
26906 qY = q0 + L4_MABX_B.UnitDelay_l;
26907 if (qY < q0) {
26908 qY = MAX_uint32_T;
26909 }
26910
26911 L4_MABX_B.Subtract_f1 = qY;
26912
26913 /* End of Sum: '<S49>/Subtract' */
26914
26915 /* Switch: '<S51>/Switch1' */
26916 L4_MABX_B.Switch1_c = L4_MABX_B.Subtract_f1;
26917 } else {
26918 /* Switch: '<S51>/Switch1' */
26919 L4_MABX_B.Switch1_c = L4_MABX_B.UnitDelay_l;
26920 }
26921
26922 L4_MABX_B.Switch1_e = L4_MABX_B.Switch1_c;
26923 }
26924
26925 /* End of Switch: '<S52>/Switch1' */
26926
26927 /* Selector: '<S48>/Selector' */
26928 L4_MABX_B.Selector_i = L4_MABX_B.Reshape_n[(int32_T)L4_MABX_B.Switch1_e - 1];
26929
26930 /* Outputs for Triggered SubSystem: '<S14>/CAN_TYPE1_BOR_M2_C2' incorporates:
26931 * TriggerPort: '<S47>/Trigger'
26932 */
26933 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE == POS_ZCSIG) !=
26934 (int32_T)L4_MABX_B.Selector_i) &&
26935 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE !=
26936 UNINITIALIZED_ZCSIG));
26937 if (zcEvent) {
26938 /* S-Function (rti_commonblock): '<S47>/S-Function1' */
26939 /* This comment workarounds a code generation problem */
26940
26941 /* dSPACE RTICAN Bus Off Recovery block */
26942 /* ... Perform software-reset of the CAN microcontroller */
26943 {
26944 UInt32 loop_counter, memory;
26945 loop_counter = 0;
26946 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_BOff_return
26947 (can_type1_channel_M2_C2)) == DSMCOM_BUFFER_OVERFLOW) {
26948 loop_counter++;
26949 if (loop_counter > MAX_LOOP) {
26950 memory = rtican_type1_error_level;
26951 rtican_type1_error_level = 1;
26952 rtican_type1_tq_err_sig(1, 0);
26953 rtican_type1_error_level = memory;
26954 break;
26955 }
26956 }
26957
26958 while ((rtican_type1_tq_error[1][0] = can_tp1_channel_all_wakeup
26959 (can_type1_channel_M2_C2)) == DSMCOM_BUFFER_OVERFLOW) {
26960 loop_counter++;
26961 if (loop_counter > MAX_LOOP) {
26962 memory = rtican_type1_error_level;
26963 rtican_type1_error_level = 1;
26964 rtican_type1_tq_err_sig(1, 0);
26965 rtican_type1_error_level = memory;
26966 break;
26967 }
26968 }
26969 }
26970 }
26971
26972 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE = L4_MABX_B.Selector_i;
26973
26974 /* End of Outputs for SubSystem: '<S14>/CAN_TYPE1_BOR_M2_C2' */
26975
26976 /* RelationalOperator: '<S50>/Operator' */
26977 L4_MABX_B.Operator_ou = (L4_MABX_B.Switch1_e == L4_MABX_ConstB.Width_i);
26978 }
26979
26980 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
26981
26982 /* S-Function (rti_commonblock): '<S17>/S-Function1' */
26983 /* This comment workarounds a code generation problem */
26984
26985 /* dSPACE RTICAN Status block */
26986 /* ... read status variables of the CAN microcontroller */
26987 {
26988 UInt32 loop_counter, memory, j;
26989 for (j=0;j<=9;j++) {
26990 rtican_type1_tq_error[0][6] = can_tp1_service_read
26991 (can_type1_service_M1_C2[j]);
26992 loop_counter = 0;
26993 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
26994 (can_type1_service_M1_C2[j]))== DSMCOM_BUFFER_OVERFLOW) {
26995 loop_counter++;
26996 if (loop_counter > MAX_LOOP) {
26997 memory = rtican_type1_error_level;
26998 rtican_type1_error_level = 1;
26999 rtican_type1_tq_err_sig(0, 6);
27000 rtican_type1_error_level = memory;
27001 break;
27002 }
27003 }
27004
27005 if (j==CANTP1_M1_C2_RXLost) {
27006 rtican_type1_tq_error[0][6] = can_tp1_service_read
27007 (can_type1_service_M1_C2[CANTP1_M1_C2_DataLost]);
27008 loop_counter = 0;
27009 while ((rtican_type1_tq_error[0][6] = can_tp1_service_request
27010 (can_type1_service_M1_C2[CANTP1_M1_C2_DataLost]))==
27011 DSMCOM_BUFFER_OVERFLOW) {
27012 loop_counter++;
27013 if (loop_counter > MAX_LOOP) {
27014 memory = rtican_type1_error_level;
27015 rtican_type1_error_level = 1;
27016 rtican_type1_tq_err_sig(0, 6);
27017 rtican_type1_error_level = memory;
27018 break;
27019 }
27020 }
27021 }
27022 }
27023
27024 L4_MABX_B.SFunction1_o1_og = (UInt32)
27025 can_type1_service_M1_C2[CANTP1_M1_C2_Status]->data0;
27026 DIAG_CAN2_Count_Stuff_Errors = (UInt32)
27027 can_type1_service_M1_C2[CANTP1_M1_C2_StuffErrors]->data0;
27028 DIAG_CAN2_Count_Format_Errors = (UInt32)
27029 can_type1_service_M1_C2[CANTP1_M1_C2_FormatErrors]->data0;
27030 DIAG_CAN2_Count_Ack_Errors = (UInt32)
27031 can_type1_service_M1_C2[CANTP1_M1_C2_AckErrors]->data0;
27032 DIAG_CAN2_Count_Bit0_Errors = (UInt32)
27033 can_type1_service_M1_C2[CANTP1_M1_C2_Bit0Errors]->data0;
27034 DIAG_CAN2_Count_Bit1_Errors = (UInt32)
27035 can_type1_service_M1_C2[CANTP1_M1_C2_Bit1Errors]->data0;
27036 DIAG_CAN2_Count_CRC_Errors = (UInt32)
27037 can_type1_service_M1_C2[CANTP1_M1_C2_CRCErrors]->data0;
27038 DIAG_CAN2_Count_RX_Lost = (UInt32)
27039 (can_type1_service_M1_C2[CANTP1_M1_C2_RXLost]->data0 +
27040 can_type1_service_M1_C2[CANTP1_M1_C2_DataLost]->data0);
27041 DIAG_CAN2_Count_RX_OK = (UInt32) can_type1_service_M1_C2[CANTP1_M1_C2_RXOK
27042 ]->data0;
27043 DIAG_CAN2_Count_TX_OK = (UInt32) can_type1_service_M1_C2[CANTP1_M1_C2_TXOK
27044 ]->data0;
27045 }
27046
27047 /* DataTypeConversion: '<S1>/Data Type Conversion1' */
27048 DIAG_CAN2_Status = (ENUM_CAN_STATUS_DIAG_T)safe_cast_to_ENUM_CAN_STATUS_DI
27049 ((int32_T)L4_MABX_B.SFunction1_o1_og);
27050
27051 /* RelationalOperator: '<S23>/Operator' incorporates:
27052 * Constant: '<S1>/Constant2'
27053 */
27054 L4_MABX_B.Operator_ebm = (L4_MABX_P.Constant2_Value_j == DIAG_CAN2_Status);
27055
27056 /* Outputs for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_2' incorporates:
27057 * EnablePort: '<S12>/Enable'
27058 */
27059 if (L4_MABX_B.Operator_ebm) {
27060 /* Reshape: '<S36>/Reshape' incorporates:
27061 * Constant: '<S36>/Constant'
27062 */
27063 L4_MABX_B.Reshape_a5[0] = L4_MABX_P.Repeating_Sequence_Stair_OutV_d[0];
27064 L4_MABX_B.Reshape_a5[1] = L4_MABX_P.Repeating_Sequence_Stair_OutV_d[1];
27065
27066 /* UnitDelay: '<S36>/Unit_Delay' */
27067 L4_MABX_B.Unit_Delay_g = L4_MABX_DW.Unit_Delay_DSTATE_je;
27068
27069 /* UnitDelay: '<S37>/Unit Delay' */
27070 L4_MABX_B.UnitDelay_b = L4_MABX_DW.UnitDelay_DSTATE_b;
27071
27072 /* Switch: '<S40>/Switch1' incorporates:
27073 * Constant: '<S37>/E'
27074 * Constant: '<S37>/IV'
27075 * Switch: '<S39>/Switch1'
27076 */
27077 if (L4_MABX_B.Unit_Delay_g) {
27078 L4_MABX_B.Switch1_i = L4_MABX_P.IV_Value_e;
27079 } else {
27080 if (L4_MABX_P.E_Value_l) {
27081 /* Sum: '<S37>/Subtract' incorporates:
27082 * Constant: '<S37>/Constant'
27083 * Switch: '<S39>/Switch1'
27084 */
27085 q0 = L4_MABX_P.Constant_Value_ae;
27086 qY = q0 + L4_MABX_B.UnitDelay_b;
27087 if (qY < q0) {
27088 qY = MAX_uint32_T;
27089 }
27090
27091 L4_MABX_B.Subtract_nc = qY;
27092
27093 /* End of Sum: '<S37>/Subtract' */
27094
27095 /* Switch: '<S39>/Switch1' */
27096 L4_MABX_B.Switch1_hm = L4_MABX_B.Subtract_nc;
27097 } else {
27098 /* Switch: '<S39>/Switch1' */
27099 L4_MABX_B.Switch1_hm = L4_MABX_B.UnitDelay_b;
27100 }
27101
27102 L4_MABX_B.Switch1_i = L4_MABX_B.Switch1_hm;
27103 }
27104
27105 /* End of Switch: '<S40>/Switch1' */
27106
27107 /* Selector: '<S36>/Selector' */
27108 L4_MABX_B.Selector_b = L4_MABX_B.Reshape_a5[(int32_T)L4_MABX_B.Switch1_i - 1];
27109
27110 /* Outputs for Triggered SubSystem: '<S12>/CAN_TYPE1_BOR_M1_C2' incorporates:
27111 * TriggerPort: '<S35>/Trigger'
27112 */
27113 zcEvent = (((L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE == POS_ZCSIG) !=
27114 (int32_T)L4_MABX_B.Selector_b) &&
27115 (L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE !=
27116 UNINITIALIZED_ZCSIG));
27117 if (zcEvent) {
27118 /* S-Function (rti_commonblock): '<S35>/S-Function1' */
27119 /* This comment workarounds a code generation problem */
27120
27121 /* dSPACE RTICAN Bus Off Recovery block */
27122 /* ... Perform software-reset of the CAN microcontroller */
27123 {
27124 UInt32 loop_counter, memory;
27125 loop_counter = 0;
27126 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_BOff_return
27127 (can_type1_channel_M1_C2)) == DSMCOM_BUFFER_OVERFLOW) {
27128 loop_counter++;
27129 if (loop_counter > MAX_LOOP) {
27130 memory = rtican_type1_error_level;
27131 rtican_type1_error_level = 1;
27132 rtican_type1_tq_err_sig(0, 0);
27133 rtican_type1_error_level = memory;
27134 break;
27135 }
27136 }
27137
27138 while ((rtican_type1_tq_error[0][0] = can_tp1_channel_all_wakeup
27139 (can_type1_channel_M1_C2)) == DSMCOM_BUFFER_OVERFLOW) {
27140 loop_counter++;
27141 if (loop_counter > MAX_LOOP) {
27142 memory = rtican_type1_error_level;
27143 rtican_type1_error_level = 1;
27144 rtican_type1_tq_err_sig(0, 0);
27145 rtican_type1_error_level = memory;
27146 break;
27147 }
27148 }
27149 }
27150 }
27151
27152 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE = L4_MABX_B.Selector_b;
27153
27154 /* End of Outputs for SubSystem: '<S12>/CAN_TYPE1_BOR_M1_C2' */
27155
27156 /* RelationalOperator: '<S38>/Operator' */
27157 L4_MABX_B.Operator_bsv = (L4_MABX_B.Switch1_i == L4_MABX_ConstB.Width_g);
27158 }
27159
27160 /* End of Outputs for SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
27161 /* user code (Output function Trailer for TID5) */
27162
27163 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
27164 /* EventChannel: 0 */
27165 if (tid == 0) {
27166 DSXCP_service(0);
27167 }
27168
27169 /* If subsystem generates rate grouping Output functions,
27170 * when tid is used in Output function for one rate,
27171 * all Output functions include tid as a local variable.
27172 * As result, some Output functions may have unused tid.
27173 */
27174 UNUSED_PARAMETER(tid);
27175}
27176
27177/* Model update function for TID5 */
27178void L4_MABX_update5(void) /* Sample time: [0.5s, 0.0s] */
27179{
27180 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_1' incorporates:
27181 * EnablePort: '<S11>/Enable'
27182 */
27183 if (L4_MABX_B.Operator_eu) {
27184 /* Update for UnitDelay: '<S30>/Unit_Delay' */
27185 L4_MABX_DW.Unit_Delay_DSTATE_f1 = L4_MABX_B.Operator_f5;
27186
27187 /* Update for UnitDelay: '<S31>/Unit Delay' */
27188 L4_MABX_DW.UnitDelay_DSTATE_j = L4_MABX_B.Switch1_o;
27189 }
27190
27191 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
27192
27193 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_5' incorporates:
27194 * EnablePort: '<S15>/Enable'
27195 */
27196 if (L4_MABX_B.Operator_msz) {
27197 /* Update for UnitDelay: '<S54>/Unit_Delay' */
27198 L4_MABX_DW.Unit_Delay_DSTATE_i5 = L4_MABX_B.Operator_ho0;
27199
27200 /* Update for UnitDelay: '<S55>/Unit Delay' */
27201 L4_MABX_DW.UnitDelay_DSTATE_p = L4_MABX_B.Switch1_k;
27202 }
27203
27204 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
27205
27206 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_6' incorporates:
27207 * EnablePort: '<S16>/Enable'
27208 */
27209 if (L4_MABX_B.Operator_fvew) {
27210 /* Update for UnitDelay: '<S60>/Unit_Delay' */
27211 L4_MABX_DW.Unit_Delay_DSTATE_l5 = L4_MABX_B.Operator_bgt;
27212
27213 /* Update for UnitDelay: '<S61>/Unit Delay' */
27214 L4_MABX_DW.UnitDelay_DSTATE_dr = L4_MABX_B.Switch1_h;
27215 }
27216
27217 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
27218
27219 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_3' incorporates:
27220 * EnablePort: '<S13>/Enable'
27221 */
27222 if (L4_MABX_B.Operator_bsh) {
27223 /* Update for UnitDelay: '<S42>/Unit_Delay' */
27224 L4_MABX_DW.Unit_Delay_DSTATE_h41 = L4_MABX_B.Operator_dh;
27225
27226 /* Update for UnitDelay: '<S43>/Unit Delay' */
27227 L4_MABX_DW.UnitDelay_DSTATE_dr4 = L4_MABX_B.Switch1_k4;
27228 }
27229
27230 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
27231
27232 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_4' incorporates:
27233 * EnablePort: '<S14>/Enable'
27234 */
27235 if (L4_MABX_B.Operator_bw3) {
27236 /* Update for UnitDelay: '<S48>/Unit_Delay' */
27237 L4_MABX_DW.Unit_Delay_DSTATE_mq = L4_MABX_B.Operator_ou;
27238
27239 /* Update for UnitDelay: '<S49>/Unit Delay' */
27240 L4_MABX_DW.UnitDelay_DSTATE_h = L4_MABX_B.Switch1_e;
27241 }
27242
27243 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
27244
27245 /* Update for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_2' incorporates:
27246 * EnablePort: '<S12>/Enable'
27247 */
27248 if (L4_MABX_B.Operator_ebm) {
27249 /* Update for UnitDelay: '<S36>/Unit_Delay' */
27250 L4_MABX_DW.Unit_Delay_DSTATE_je = L4_MABX_B.Operator_bsv;
27251
27252 /* Update for UnitDelay: '<S37>/Unit Delay' */
27253 L4_MABX_DW.UnitDelay_DSTATE_b = L4_MABX_B.Switch1_i;
27254 }
27255
27256 /* End of Update for SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
27257}
27258
27259/* Model output function for TID6 */
27260void L4_MABX_output6(void) /* Sample time: [1.0s, 0.0s] */
27261{
27262 int_T tid = 6;
27263
27264 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_1000ms' */
27265
27266 /* DataTypeConversion: '<S827>/Data Type Conversion' incorporates:
27267 * Constant: '<S818>/Constant2'
27268 */
27269 L4_MABX_B.DataTypeConversion_lu = (uint8_T)L4_MABX_P.Constant2_Value_k;
27270
27271 /* S-Function (sfix_bitop): '<S832>/Operator' */
27272 L4_MABX_B.Operator_cc = (uint8_T)(L4_MABX_B.DataTypeConversion_lu &
27273 L4_MABX_P.Operator_BitMask);
27274
27275 /* DataTypeConversion: '<S832>/DataType' */
27276 L4_MABX_B.DataType_oo = L4_MABX_B.Operator_cc;
27277
27278 /* ArithShift: '<S827>/Shift_Arithmetic 2' */
27279 L4_MABX_B.Shift_Arithmetic2_b = ldexp(L4_MABX_B.DataType_oo, (-3));
27280
27281 /* DataTypeConversion: '<S827>/Data Type Conversion5' */
27282 L4_MABX_B.DataTypeConversion5_a1 = (L4_MABX_B.Shift_Arithmetic2_b != 0.0);
27283
27284 /* Outputs for Enabled SubSystem: '<S835>/AIR1' incorporates:
27285 * EnablePort: '<S836>/Enable'
27286 */
27287 if (L4_MABX_B.DataTypeConversion5_a1) {
27288 /* S-Function (rti_commonblock): '<S836>/S-Function1' */
27289 /* This comment workarounds a code generation problem */
27290
27291 /* dSPACE RTICAN TX Message Block: "AIR1" Id:419343921 */
27292 {
27293 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
27294
27295 Float32 delayTime = 0.0;
27296
27297 /* ... Read status and timestamp info (previous message) */
27298 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]);
27299
27300 /* Convert timestamp */
27301 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->processed) {
27302 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp =
27303 rtk_dsts_time_to_simtime_convert
27304 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp);
27305 }
27306
27307 /* Messages with timestamp zero have been received in pause/stop state
27308 and must not be handled.
27309 */
27310 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp > 0.0) {
27311 L4_MABX_B.SFunction1_o1_a3 = (real_T)
27312 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->processed;
27313 L4_MABX_B.SFunction1_o2_cq = (real_T)
27314 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->timestamp;
27315 L4_MABX_B.SFunction1_o3_ds = (real_T)
27316 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->deltatime;
27317 L4_MABX_B.SFunction1_o4_f = (real_T)
27318 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31]->delaytime;
27319 }
27320
27321 /* ... Encode Simulink signals of TX and RM blocks*/
27322 {
27323 rtican_Signal_t CAN_Sgn;
27324
27325 /* ...... "PneumaticSupplyPress" (0|8, standard signal, unsigned int, little endian) */
27326 /* Add or substract 0.5 in order to round to nearest integer */
27327 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.PneumaticSupplyPress - ( 0 )
27328 ) / 8 + 0.5);
27329 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27330 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
27331
27332 /* ...... "ParkingAnd_orTrailerAirPress" (8|8, standard signal, unsigned int, little endian) */
27333 /* Add or substract 0.5 in order to round to nearest integer */
27334 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ParkingAnd_orTrailerAirPress
27335 - ( 0 ) ) / 8 + 0.5);
27336 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27337 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
27338
27339 /* ...... "ServiceBrakeCircuit1AirPress" (16|8, standard signal, unsigned int, little endian) */
27340 /* Add or substract 0.5 in order to round to nearest integer */
27341 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ServiceBrakeCircuit1AirPress
27342 - ( 0 ) ) / 8 + 0.5);
27343 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27344 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
27345
27346 /* ...... "ServiceBrakeCircuit2AirPress" (24|8, standard signal, unsigned int, little endian) */
27347 /* Add or substract 0.5 in order to round to nearest integer */
27348 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.ServiceBrakeCircuit2AirPress
27349 - ( 0 ) ) / 8 + 0.5);
27350 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27351 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
27352
27353 /* ...... "AuxEquipmentSupplyPress" (32|8, standard signal, unsigned int, little endian) */
27354 /* Add or substract 0.5 in order to round to nearest integer */
27355 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AuxEquipmentSupplyPress -
27356 ( 0 ) ) / 8 + 0.5);
27357 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27358 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte0;
27359
27360 /* ...... "AirSuspensionSupplyPress" (40|8, standard signal, unsigned int, little endian) */
27361 /* Add or substract 0.5 in order to round to nearest integer */
27362 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AirSuspensionSupplyPress - (
27363 0 ) ) / 8 + 0.5);
27364 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27365 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
27366
27367 /* ...... "AirCompressorStatus" (48|2, standard signal, unsigned int, little endian) */
27368 /* Add or substract 0.5 in order to round to nearest integer */
27369 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AirCompressorStatus ) + 0.5);
27370 CAN_Sgn.UnsignedSgn &= 0x00000003;
27371 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
27372
27373 /* ...... "PowertrainCircuitAirSupplyPress" (56|8, standard signal, unsigned int, little endian) */
27374 /* Add or substract 0.5 in order to round to nearest integer */
27375 CAN_Sgn.UnsignedSgn = (UInt32)
27376 (( L4_MABX_B.PowertrainCircuitAirSupplyPress - ( 0 ) ) / 8 + 0.5);
27377 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27378 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte0;
27379 }
27380
27381 /* mask unused bits with '1' */
27382 CAN_Msg[6] |= 0xFC;
27383
27384 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
27385 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31], 8,
27386 &(CAN_Msg[0]), delayTime);
27387 }
27388 }
27389
27390 /* End of Outputs for SubSystem: '<S835>/AIR1' */
27391
27392 /* S-Function (sfix_bitop): '<S829>/Operator' */
27393 L4_MABX_B.Operator_ent = (uint8_T)(L4_MABX_B.DataTypeConversion_lu &
27394 L4_MABX_P.Operator_BitMask_c);
27395
27396 /* DataTypeConversion: '<S829>/DataType' */
27397 L4_MABX_B.DataType_el = L4_MABX_B.Operator_ent;
27398
27399 /* S-Function (sfix_bitop): '<S830>/Operator' */
27400 L4_MABX_B.Operator_i5 = (uint8_T)(L4_MABX_B.DataTypeConversion_lu &
27401 L4_MABX_P.Operator_BitMask_a);
27402
27403 /* DataTypeConversion: '<S830>/DataType' */
27404 L4_MABX_B.DataType_jb = L4_MABX_B.Operator_i5;
27405
27406 /* S-Function (sfix_bitop): '<S831>/Operator' */
27407 L4_MABX_B.Operator_pe = (uint8_T)(L4_MABX_B.DataTypeConversion_lu &
27408 L4_MABX_P.Operator_BitMask_o);
27409
27410 /* DataTypeConversion: '<S831>/DataType' */
27411 L4_MABX_B.DataType_k = L4_MABX_B.Operator_pe;
27412
27413 /* S-Function (sfix_bitop): '<S833>/Operator' */
27414 L4_MABX_B.Operator_n = (uint8_T)(L4_MABX_B.DataTypeConversion_lu &
27415 L4_MABX_P.Operator_BitMask_p);
27416
27417 /* DataTypeConversion: '<S833>/DataType' */
27418 L4_MABX_B.DataType_hk = L4_MABX_B.Operator_n;
27419
27420 /* S-Function (sfix_bitop): '<S834>/Operator' */
27421 L4_MABX_B.Operator_ij = (uint8_T)(L4_MABX_B.DataTypeConversion_lu &
27422 L4_MABX_P.Operator_BitMask_k);
27423
27424 /* DataTypeConversion: '<S834>/DataType' */
27425 L4_MABX_B.DataType_mi = L4_MABX_B.Operator_ij;
27426
27427 /* DataTypeConversion: '<S827>/Data Type Conversion2' */
27428 L4_MABX_B.DataTypeConversion2_lg = (L4_MABX_B.DataType_el != 0);
27429
27430 /* ArithShift: '<S827>/Shift_Arithmetic ' */
27431 L4_MABX_B.Shift_Arithmetic_e = ldexp(L4_MABX_B.DataType_jb, (-1));
27432
27433 /* DataTypeConversion: '<S827>/Data Type Conversion3' */
27434 L4_MABX_B.DataTypeConversion3_hk = (L4_MABX_B.Shift_Arithmetic_e != 0.0);
27435
27436 /* ArithShift: '<S827>/Shift_Arithmetic 1' */
27437 L4_MABX_B.Shift_Arithmetic1_j = ldexp(L4_MABX_B.DataType_k, (-2));
27438
27439 /* DataTypeConversion: '<S827>/Data Type Conversion4' */
27440 L4_MABX_B.DataTypeConversion4_p4 = (L4_MABX_B.Shift_Arithmetic1_j != 0.0);
27441
27442 /* ArithShift: '<S827>/Shift_Arithmetic 3' */
27443 L4_MABX_B.Shift_Arithmetic3_n = ldexp(L4_MABX_B.DataType_hk, (-4));
27444
27445 /* DataTypeConversion: '<S827>/Data Type Conversion6' */
27446 L4_MABX_B.DataTypeConversion6_ct = (L4_MABX_B.Shift_Arithmetic3_n != 0.0);
27447
27448 /* ArithShift: '<S827>/Shift_Arithmetic 4' */
27449 L4_MABX_B.Shift_Arithmetic4_e = ldexp(L4_MABX_B.DataType_mi, (-5));
27450
27451 /* DataTypeConversion: '<S827>/Data Type Conversion7' */
27452 L4_MABX_B.DataTypeConversion7_bq = (L4_MABX_B.Shift_Arithmetic4_e != 0.0);
27453
27454 /* DataTypeConversion: '<S828>/Data Type Conversion' incorporates:
27455 * Constant: '<S818>/Constant1'
27456 */
27457 L4_MABX_B.DataTypeConversion_p2 = (uint8_T)L4_MABX_P.Constant1_Value_ij;
27458
27459 /* S-Function (sfix_bitop): '<S840>/Operator' */
27460 L4_MABX_B.Operator_hr = (uint8_T)(L4_MABX_B.DataTypeConversion_p2 &
27461 L4_MABX_P.Operator_BitMask_b);
27462
27463 /* DataTypeConversion: '<S840>/DataType' */
27464 L4_MABX_B.DataType_hd = L4_MABX_B.Operator_hr;
27465
27466 /* ArithShift: '<S828>/Shift_Arithmetic 2' */
27467 L4_MABX_B.Shift_Arithmetic2_f = ldexp(L4_MABX_B.DataType_hd, (-3));
27468
27469 /* DataTypeConversion: '<S828>/Data Type Conversion5' */
27470 L4_MABX_B.DataTypeConversion5_c0 = (L4_MABX_B.Shift_Arithmetic2_f != 0.0);
27471
27472 /* Outputs for Enabled SubSystem: '<S843>/AMB' incorporates:
27473 * EnablePort: '<S844>/Enable'
27474 */
27475 if (L4_MABX_B.DataTypeConversion5_c0) {
27476 /* S-Function (rti_commonblock): '<S844>/S-Function1' */
27477 /* This comment workarounds a code generation problem */
27478
27479 /* dSPACE RTICAN TX Message Block: "AMB" Id:419362048 */
27480 {
27481 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
27482
27483 Float32 delayTime = 0.0;
27484
27485 /* ... Read status and timestamp info (previous message) */
27486 can_tp1_msg_read(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]);
27487
27488 /* Convert timestamp */
27489 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->processed) {
27490 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp =
27491 rtk_dsts_time_to_simtime_convert
27492 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp);
27493 }
27494
27495 /* Messages with timestamp zero have been received in pause/stop state
27496 and must not be handled.
27497 */
27498 if (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp > 0.0) {
27499 L4_MABX_B.SFunction1_o1_c4 = (real_T)
27500 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->processed;
27501 L4_MABX_B.SFunction1_o2_nd = (real_T)
27502 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->timestamp;
27503 L4_MABX_B.SFunction1_o3_l = (real_T)
27504 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->deltatime;
27505 L4_MABX_B.SFunction1_o4_l = (real_T)
27506 can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500]->delaytime;
27507 }
27508
27509 /* ... Encode Simulink signals of TX and RM blocks*/
27510 {
27511 rtican_Signal_t CAN_Sgn;
27512
27513 /* ...... "BarometricPress" (0|8, standard signal, unsigned int, little endian) */
27514 /* Add or substract 0.5 in order to round to nearest integer */
27515 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.BarometricPress_c - ( 0 ) ) /
27516 0.5 + 0.5);
27517 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27518 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
27519
27520 /* ...... "CabInteriorTemp" (8|16, standard signal, unsigned int, little endian) */
27521 /* Add or substract 0.5 in order to round to nearest integer */
27522 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.CabInteriorTemp - ( -273 ) )
27523 / 0.03125 + 0.5);
27524 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
27525 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
27526 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte1;
27527
27528 /* ...... "AmbientAirTemp" (24|16, standard signal, unsigned int, little endian) */
27529 /* Add or substract 0.5 in order to round to nearest integer */
27530 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.AmbientAirTemp_g - ( -273 ) )
27531 / 0.03125 + 0.5);
27532 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
27533 CAN_Msg[3] |= CAN_Sgn.SgnBytes.Byte0;
27534 CAN_Msg[4] |= CAN_Sgn.SgnBytes.Byte1;
27535
27536 /* ...... "EngAirIntakeTemp" (40|8, standard signal, unsigned int, little endian) */
27537 /* Add or substract 0.5 in order to round to nearest integer */
27538 CAN_Sgn.UnsignedSgn = (UInt32) (L4_MABX_B.EngAirIntakeTemp - ( -40 ) +
27539 0.5);
27540 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27541 CAN_Msg[5] |= CAN_Sgn.SgnBytes.Byte0;
27542
27543 /* ...... "RoadSurfaceTemp" (48|16, standard signal, unsigned int, little endian) */
27544 /* Add or substract 0.5 in order to round to nearest integer */
27545 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.RoadSurfaceTemp - ( -273 ) )
27546 / 0.03125 + 0.5);
27547 CAN_Sgn.UnsignedSgn &= 0x0000FFFF;
27548 CAN_Msg[6] |= CAN_Sgn.SgnBytes.Byte0;
27549 CAN_Msg[7] |= CAN_Sgn.SgnBytes.Byte1;
27550 }
27551
27552 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
27553 can_tp1_msg_send(can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500], 8,
27554 &(CAN_Msg[0]), delayTime);
27555 }
27556 }
27557
27558 /* End of Outputs for SubSystem: '<S843>/AMB' */
27559
27560 /* S-Function (sfix_bitop): '<S837>/Operator' */
27561 L4_MABX_B.Operator_g2 = (uint8_T)(L4_MABX_B.DataTypeConversion_p2 &
27562 L4_MABX_P.Operator_BitMask_ox);
27563
27564 /* DataTypeConversion: '<S837>/DataType' */
27565 L4_MABX_B.DataType_iyu = L4_MABX_B.Operator_g2;
27566
27567 /* S-Function (sfix_bitop): '<S838>/Operator' */
27568 L4_MABX_B.Operator_fv = (uint8_T)(L4_MABX_B.DataTypeConversion_p2 &
27569 L4_MABX_P.Operator_BitMask_kb);
27570
27571 /* DataTypeConversion: '<S838>/DataType' */
27572 L4_MABX_B.DataType_fq = L4_MABX_B.Operator_fv;
27573
27574 /* S-Function (sfix_bitop): '<S839>/Operator' */
27575 L4_MABX_B.Operator_gp = (uint8_T)(L4_MABX_B.DataTypeConversion_p2 &
27576 L4_MABX_P.Operator_BitMask_h);
27577
27578 /* DataTypeConversion: '<S839>/DataType' */
27579 L4_MABX_B.DataType_od = L4_MABX_B.Operator_gp;
27580
27581 /* S-Function (sfix_bitop): '<S841>/Operator' */
27582 L4_MABX_B.Operator_av = (uint8_T)(L4_MABX_B.DataTypeConversion_p2 &
27583 L4_MABX_P.Operator_BitMask_o5);
27584
27585 /* DataTypeConversion: '<S841>/DataType' */
27586 L4_MABX_B.DataType_oz = L4_MABX_B.Operator_av;
27587
27588 /* S-Function (sfix_bitop): '<S842>/Operator' */
27589 L4_MABX_B.Operator_ms = (uint8_T)(L4_MABX_B.DataTypeConversion_p2 &
27590 L4_MABX_P.Operator_BitMask_kf);
27591
27592 /* DataTypeConversion: '<S842>/DataType' */
27593 L4_MABX_B.DataType_me = L4_MABX_B.Operator_ms;
27594
27595 /* DataTypeConversion: '<S828>/Data Type Conversion2' */
27596 L4_MABX_B.DataTypeConversion2_in = (L4_MABX_B.DataType_iyu != 0);
27597
27598 /* ArithShift: '<S828>/Shift_Arithmetic ' */
27599 L4_MABX_B.Shift_Arithmetic_de = ldexp(L4_MABX_B.DataType_fq, (-1));
27600
27601 /* DataTypeConversion: '<S828>/Data Type Conversion3' */
27602 L4_MABX_B.DataTypeConversion3_jx = (L4_MABX_B.Shift_Arithmetic_de != 0.0);
27603
27604 /* ArithShift: '<S828>/Shift_Arithmetic 1' */
27605 L4_MABX_B.Shift_Arithmetic1_ju = ldexp(L4_MABX_B.DataType_od, (-2));
27606
27607 /* DataTypeConversion: '<S828>/Data Type Conversion4' */
27608 L4_MABX_B.DataTypeConversion4_mc = (L4_MABX_B.Shift_Arithmetic1_ju != 0.0);
27609
27610 /* ArithShift: '<S828>/Shift_Arithmetic 3' */
27611 L4_MABX_B.Shift_Arithmetic3_p = ldexp(L4_MABX_B.DataType_oz, (-4));
27612
27613 /* DataTypeConversion: '<S828>/Data Type Conversion6' */
27614 L4_MABX_B.DataTypeConversion6_m1 = (L4_MABX_B.Shift_Arithmetic3_p != 0.0);
27615
27616 /* ArithShift: '<S828>/Shift_Arithmetic 4' */
27617 L4_MABX_B.Shift_Arithmetic4_ok = ldexp(L4_MABX_B.DataType_me, (-5));
27618
27619 /* DataTypeConversion: '<S828>/Data Type Conversion7' */
27620 L4_MABX_B.DataTypeConversion7_ly = (L4_MABX_B.Shift_Arithmetic4_ok != 0.0);
27621
27622 /* End of Outputs for SubSystem: '<S815>/CAN_TX_1000ms' */
27623 /* user code (Output function Trailer for TID6) */
27624
27625 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
27626 /* EventChannel: 0 */
27627 if (tid == 0) {
27628 DSXCP_service(0);
27629 }
27630
27631 /* If subsystem generates rate grouping Output functions,
27632 * when tid is used in Output function for one rate,
27633 * all Output functions include tid as a local variable.
27634 * As result, some Output functions may have unused tid.
27635 */
27636 UNUSED_PARAMETER(tid);
27637}
27638
27639/* Model update function for TID6 */
27640void L4_MABX_update6(void) /* Sample time: [1.0s, 0.0s] */
27641{
27642 /* (no update code required) */
27643}
27644
27645/* Model output function for TID7 */
27646void L4_MABX_output7(void) /* Sample time: [5.0s, 0.0s] */
27647{
27648 int_T tid = 7;
27649 int32_T i;
27650 uint16_T tmp;
27651 uint32_T q0;
27652 uint32_T qY;
27653
27654 /* Outputs for Atomic SubSystem: '<S815>/CAN_TX_5000ms' */
27655
27656 /* DataTypeConversion: '<S1006>/Data Type Conversion6' incorporates:
27657 * Constant: '<S1006>/Enable_TX_RequestDiagMsgFromREAX'
27658 */
27659 L4_MABX_B.DataTypeConversion6_gq = L4_MABX_P.Enable_TX_RequestDiagMsgFromREA;
27660
27661 /* Logic: '<S1010>/Operator' */
27662 L4_MABX_B.Operator_o1 = (L4_MABX_B.DataTypeConversion6_gq &&
27663 L4_MABX_B.TmpRTBAtOperatorInport2);
27664
27665 /* DataTypeConversion: '<S1010>/DataType' */
27666 L4_MABX_B.DataType_g2 = L4_MABX_B.Operator_o1;
27667
27668 /* Reshape: '<S1015>/Reshape' incorporates:
27669 * Constant: '<S1015>/Constant'
27670 */
27671 for (i = 0; i < 8; i++) {
27672 L4_MABX_B.Reshape[i] = L4_MABX_P.Repeating_Sequence_Stair_OutVal[i];
27673 }
27674
27675 /* End of Reshape: '<S1015>/Reshape' */
27676
27677 /* UnitDelay: '<S1015>/Unit_Delay' */
27678 L4_MABX_B.Unit_Delay_c = L4_MABX_DW.Unit_Delay_DSTATE_l;
27679
27680 /* UnitDelay: '<S1016>/Unit Delay' */
27681 L4_MABX_B.UnitDelay_py = L4_MABX_DW.UnitDelay_DSTATE_n;
27682
27683 /* Switch: '<S1019>/Switch1' incorporates:
27684 * Constant: '<S1016>/E'
27685 * Constant: '<S1016>/IV'
27686 * Switch: '<S1018>/Switch1'
27687 */
27688 if (L4_MABX_B.Unit_Delay_c) {
27689 L4_MABX_B.Switch1_a = L4_MABX_P.IV_Value_hl;
27690 } else {
27691 if (L4_MABX_P.E_Value_o) {
27692 /* Sum: '<S1016>/Subtract' incorporates:
27693 * Constant: '<S1016>/Constant'
27694 * Switch: '<S1018>/Switch1'
27695 */
27696 q0 = L4_MABX_P.Constant_Value_kt;
27697 qY = q0 + L4_MABX_B.UnitDelay_py;
27698 if (qY < q0) {
27699 qY = MAX_uint32_T;
27700 }
27701
27702 L4_MABX_B.Subtract_b1 = qY;
27703
27704 /* End of Sum: '<S1016>/Subtract' */
27705
27706 /* Switch: '<S1018>/Switch1' */
27707 L4_MABX_B.Switch1_n = L4_MABX_B.Subtract_b1;
27708 } else {
27709 /* Switch: '<S1018>/Switch1' */
27710 L4_MABX_B.Switch1_n = L4_MABX_B.UnitDelay_py;
27711 }
27712
27713 L4_MABX_B.Switch1_a = L4_MABX_B.Switch1_n;
27714 }
27715
27716 /* End of Switch: '<S1019>/Switch1' */
27717
27718 /* Selector: '<S1015>/Selector' */
27719 L4_MABX_B.Selector = L4_MABX_B.Reshape[(int32_T)L4_MABX_B.Switch1_a - 1];
27720
27721 /* DataTypeConversion: '<S1007>/Data Type Conversion' */
27722 L4_MABX_B.DataTypeConversion_eh = L4_MABX_B.Selector;
27723
27724 /* S-Function (sfix_bitop): '<S1012>/Operator' */
27725 L4_MABX_B.Operator = L4_MABX_B.DataTypeConversion_eh &
27726 L4_MABX_P.Operator_BitMask_ef;
27727
27728 /* DataTypeConversion: '<S1012>/DataType' */
27729 q0 = L4_MABX_B.Operator;
27730 if (q0 > 255U) {
27731 q0 = 255U;
27732 }
27733
27734 L4_MABX_B.DataType_h0 = (uint8_T)q0;
27735
27736 /* End of DataTypeConversion: '<S1012>/DataType' */
27737
27738 /* DataTypeConversion: '<S1007>/Data Type Conversion3' */
27739 L4_MABX_B.DataTypeConversion3_fj = L4_MABX_B.DataType_h0;
27740
27741 /* DataTypeConversion: '<S1009>/Data Type Conversion' */
27742 L4_MABX_B.DataTypeConversion_et = L4_MABX_B.DataTypeConversion3_fj;
27743
27744 /* S-Function (sfix_bitop): '<S1013>/Operator' */
27745 L4_MABX_B.Operator_d = L4_MABX_B.DataTypeConversion_eh &
27746 L4_MABX_P.Operator_BitMask_fkw;
27747
27748 /* DataTypeConversion: '<S1013>/DataType' */
27749 q0 = L4_MABX_B.Operator_d;
27750 if (q0 > 65535U) {
27751 q0 = 65535U;
27752 }
27753
27754 L4_MABX_B.DataType_bu = (uint16_T)q0;
27755
27756 /* End of DataTypeConversion: '<S1013>/DataType' */
27757
27758 /* ArithShift: '<S1007>/Shift_Arithmetic ' */
27759 L4_MABX_B.Shift_Arithmetic_gq = (uint16_T)((uint32_T)L4_MABX_B.DataType_bu >>
27760 8);
27761
27762 /* DataTypeConversion: '<S1007>/Data Type Conversion1' */
27763 tmp = L4_MABX_B.Shift_Arithmetic_gq;
27764 if (tmp > 255) {
27765 tmp = 255U;
27766 }
27767
27768 L4_MABX_B.DataTypeConversion1_j4 = (uint8_T)tmp;
27769
27770 /* End of DataTypeConversion: '<S1007>/Data Type Conversion1' */
27771
27772 /* DataTypeConversion: '<S1009>/Data Type Conversion1' */
27773 L4_MABX_B.DataTypeConversion1_n = L4_MABX_B.DataTypeConversion1_j4;
27774
27775 /* S-Function (sfix_bitop): '<S1014>/Operator' */
27776 L4_MABX_B.Operator_j = L4_MABX_B.DataTypeConversion_eh &
27777 L4_MABX_P.Operator_BitMask_e1;
27778
27779 /* DataTypeConversion: '<S1014>/DataType' */
27780 L4_MABX_B.DataType_ok = L4_MABX_B.Operator_j;
27781
27782 /* ArithShift: '<S1007>/Shift_Arithmetic 1' */
27783 L4_MABX_B.Shift_Arithmetic1_jd = L4_MABX_B.DataType_ok >> 16;
27784
27785 /* DataTypeConversion: '<S1007>/Data Type Conversion2' */
27786 q0 = L4_MABX_B.Shift_Arithmetic1_jd;
27787 if (q0 > 255U) {
27788 q0 = 255U;
27789 }
27790
27791 L4_MABX_B.DataTypeConversion2_l0 = (uint8_T)q0;
27792
27793 /* End of DataTypeConversion: '<S1007>/Data Type Conversion2' */
27794
27795 /* DataTypeConversion: '<S1009>/Data Type Conversion2' */
27796 L4_MABX_B.DataTypeConversion2_ai = L4_MABX_B.DataTypeConversion2_l0;
27797
27798 /* Outputs for Enabled SubSystem: '<S1009>/RQST_13_E4' incorporates:
27799 * EnablePort: '<S1011>/Enable'
27800 */
27801 if (L4_MABX_B.DataType_g2) {
27802 /* S-Function (rti_commonblock): '<S1011>/S-Function1' */
27803 /* This comment workarounds a code generation problem */
27804
27805 /* dSPACE RTICAN TX Message Block: "RQST_13_E4" Id:417993700 */
27806 {
27807 UInt32 CAN_Msg[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
27808
27809 Float32 delayTime = 0.0;
27810
27811 /* ... Read status and timestamp info (previous message) */
27812 can_tp1_msg_read(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]);
27813
27814 /* Convert timestamp */
27815 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->processed) {
27816 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp =
27817 rtk_dsts_time_to_simtime_convert
27818 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp);
27819 }
27820
27821 /* Messages with timestamp zero have been received in pause/stop state
27822 and must not be handled.
27823 */
27824 if (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp > 0.0) {
27825 L4_MABX_B.SFunction1_o1_a = (real_T)
27826 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->processed;
27827 L4_MABX_B.SFunction1_o2_i = (real_T)
27828 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->timestamp;
27829 L4_MABX_B.SFunction1_o3_k = (real_T)
27830 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->deltatime;
27831 L4_MABX_B.SFunction1_o4_d = (real_T)
27832 can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4]->delaytime;
27833 }
27834
27835 /* ... Encode Simulink signals of TX and RM blocks*/
27836 {
27837 rtican_Signal_t CAN_Sgn;
27838
27839 /* ...... "byte1" (0|8, standard signal, unsigned int, little endian) */
27840 /* Add or substract 0.5 in order to round to nearest integer */
27841 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion_et ) +
27842 0.5);
27843 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27844 CAN_Msg[0] |= CAN_Sgn.SgnBytes.Byte0;
27845
27846 /* ...... "byte2" (8|8, standard signal, unsigned int, little endian) */
27847 /* Add or substract 0.5 in order to round to nearest integer */
27848 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion1_n ) +
27849 0.5);
27850 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27851 CAN_Msg[1] |= CAN_Sgn.SgnBytes.Byte0;
27852
27853 /* ...... "byte3" (16|8, standard signal, unsigned int, little endian) */
27854 /* Add or substract 0.5 in order to round to nearest integer */
27855 CAN_Sgn.UnsignedSgn = (UInt32) (( L4_MABX_B.DataTypeConversion2_ai ) +
27856 0.5);
27857 CAN_Sgn.UnsignedSgn &= 0x000000FF;
27858 CAN_Msg[2] |= CAN_Sgn.SgnBytes.Byte0;
27859 }
27860
27861 /* ... Write the data to the CAN microcontroller and trigger the sending of the message */
27862 can_tp1_msg_send(can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4], 8,
27863 &(CAN_Msg[0]), delayTime);
27864 }
27865 }
27866
27867 /* End of Outputs for SubSystem: '<S1009>/RQST_13_E4' */
27868
27869 /* RelationalOperator: '<S1017>/Operator' */
27870 L4_MABX_B.Operator_b3z = (L4_MABX_B.Switch1_a == L4_MABX_B.Width);
27871
27872 /* End of Outputs for SubSystem: '<S815>/CAN_TX_5000ms' */
27873 /* user code (Output function Trailer for TID7) */
27874
27875 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
27876 /* EventChannel: 0 */
27877 if (tid == 0) {
27878 DSXCP_service(0);
27879 }
27880
27881 /* If subsystem generates rate grouping Output functions,
27882 * when tid is used in Output function for one rate,
27883 * all Output functions include tid as a local variable.
27884 * As result, some Output functions may have unused tid.
27885 */
27886 UNUSED_PARAMETER(tid);
27887}
27888
27889/* Model update function for TID7 */
27890void L4_MABX_update7(void) /* Sample time: [5.0s, 0.0s] */
27891{
27892 /* Update for Atomic SubSystem: '<S815>/CAN_TX_5000ms' */
27893
27894 /* Update for UnitDelay: '<S1015>/Unit_Delay' */
27895 L4_MABX_DW.Unit_Delay_DSTATE_l = L4_MABX_B.Operator_b3z;
27896
27897 /* Update for UnitDelay: '<S1016>/Unit Delay' */
27898 L4_MABX_DW.UnitDelay_DSTATE_n = L4_MABX_B.Switch1_a;
27899
27900 /* End of Update for SubSystem: '<S815>/CAN_TX_5000ms' */
27901}
27902
27903/* Model output function for TID8 */
27904void L4_MABX_output8(void) /* Sample time: [10.0s, 0.0s] */
27905{
27906 int_T tid = 8;
27907
27908 /* user code (Output function Trailer for TID8) */
27909
27910 /* XCP Data Capture block: <Root>/RTIEthXCP Data Capture */
27911 /* EventChannel: 0 */
27912 if (tid == 0) {
27913 DSXCP_service(0);
27914 }
27915
27916 /* If subsystem generates rate grouping Output functions,
27917 * when tid is used in Output function for one rate,
27918 * all Output functions include tid as a local variable.
27919 * As result, some Output functions may have unused tid.
27920 */
27921 UNUSED_PARAMETER(tid);
27922}
27923
27924/* Model update function for TID8 */
27925void L4_MABX_update8(void) /* Sample time: [10.0s, 0.0s] */
27926{
27927 /* (no update code required) */
27928}
27929
27930/* Model output wrapper function for compatibility with a static main program */
27931void L4_MABX_output(int_T tid)
27932{
27933 switch (tid) {
27934 case 0 :
27935 L4_MABX_output0();
27936 break;
27937
27938 case 1 :
27939 L4_MABX_output1();
27940 break;
27941
27942 case 2 :
27943 L4_MABX_output2();
27944 break;
27945
27946 case 3 :
27947 L4_MABX_output3();
27948 break;
27949
27950 case 4 :
27951 L4_MABX_output4();
27952 break;
27953
27954 case 5 :
27955 L4_MABX_output5();
27956 break;
27957
27958 case 6 :
27959 L4_MABX_output6();
27960 break;
27961
27962 case 7 :
27963 L4_MABX_output7();
27964 break;
27965
27966 case 8 :
27967 L4_MABX_output8();
27968 break;
27969
27970 default :
27971 break;
27972 }
27973}
27974
27975/* Model update wrapper function for compatibility with a static main program */
27976void L4_MABX_update(int_T tid)
27977{
27978 switch (tid) {
27979 case 0 :
27980 L4_MABX_update0();
27981 break;
27982
27983 case 1 :
27984 L4_MABX_update1();
27985 break;
27986
27987 case 2 :
27988 L4_MABX_update2();
27989 break;
27990
27991 case 3 :
27992 L4_MABX_update3();
27993 break;
27994
27995 case 4 :
27996 L4_MABX_update4();
27997 break;
27998
27999 case 5 :
28000 L4_MABX_update5();
28001 break;
28002
28003 case 6 :
28004 L4_MABX_update6();
28005 break;
28006
28007 case 7 :
28008 L4_MABX_update7();
28009 break;
28010
28011 case 8 :
28012 L4_MABX_update8();
28013 break;
28014
28015 default :
28016 break;
28017 }
28018}
28019
28020/* Model initialize function */
28021void L4_MABX_initialize(void)
28022{
28023 /* Registration code */
28024
28025 /* initialize non-finites */
28026 rt_InitInfAndNaN(sizeof(real_T));
28027
28028 /* non-finite (run-time) assignments */
28029 L4_MABX_P.Saturation_UpperSat = rtInf;
28030 L4_MABX_P.Saturation_UpperSat_o = rtInf;
28031 L4_MABX_P.Saturation_UpperSat_f = rtInf;
28032 L4_MABX_P.Saturation1_UpperSat_j = rtInf;
28033 L4_MABX_P.Saturation_UpperSat_l = rtInf;
28034 L4_MABX_P.Saturation_UpperSat_o1 = rtInf;
28035 L4_MABX_P.Saturation_UpperSat_d = rtInf;
28036 L4_MABX_P.Saturation_UpperSat_ok = rtInf;
28037 L4_MABX_P.Saturation_UpperSat_g = rtInf;
28038 L4_MABX_P.Saturation_UpperSat_e5 = rtInf;
28039 L4_MABX_P.Calculate_D_term_h.Saturation_UpperSat = rtInf;
28040 L4_MABX_P.Calculate_D_term_p.Saturation_UpperSat = rtInf;
28041 L4_MABX_P.Calculate_D_term.Saturation_UpperSat = rtInf;
28042
28043 /* initialize real-time model */
28044 (void) memset((void *)L4_MABX_M, 0,
28045 sizeof(RT_MODEL_L4_MABX_T));
28046 (L4_MABX_M)->Timing.TaskCounters.cLimit[0] = 1;
28047 (L4_MABX_M)->Timing.TaskCounters.cLimit[1] = 2;
28048 (L4_MABX_M)->Timing.TaskCounters.cLimit[2] = 5;
28049 (L4_MABX_M)->Timing.TaskCounters.cLimit[3] = 10;
28050 (L4_MABX_M)->Timing.TaskCounters.cLimit[4] = 25;
28051 (L4_MABX_M)->Timing.TaskCounters.cLimit[5] = 50;
28052 (L4_MABX_M)->Timing.TaskCounters.cLimit[6] = 100;
28053 (L4_MABX_M)->Timing.TaskCounters.cLimit[7] = 500;
28054 (L4_MABX_M)->Timing.TaskCounters.cLimit[8] = 1000;
28055 rtsiSetSolverName(&L4_MABX_M->solverInfo,"FixedStepDiscrete");
28056 L4_MABX_M->solverInfoPtr = (&L4_MABX_M->solverInfo);
28057
28058 /* Initialize timing info */
28059 {
28060 int_T *mdlTsMap = L4_MABX_M->Timing.sampleTimeTaskIDArray;
28061 int_T i;
28062 for (i = 0; i < 9; i++) {
28063 mdlTsMap[i] = i;
28064 }
28065
28066 L4_MABX_M->Timing.sampleTimeTaskIDPtr = (&mdlTsMap[0]);
28067 L4_MABX_M->Timing.sampleTimes = (&L4_MABX_M->Timing.sampleTimesArray[0]);
28068 L4_MABX_M->Timing.offsetTimes = (&L4_MABX_M->Timing.offsetTimesArray[0]);
28069
28070 /* task periods */
28071 L4_MABX_M->Timing.sampleTimes[0] = (0.01);
28072 L4_MABX_M->Timing.sampleTimes[1] = (0.02);
28073 L4_MABX_M->Timing.sampleTimes[2] = (0.05);
28074 L4_MABX_M->Timing.sampleTimes[3] = (0.1);
28075 L4_MABX_M->Timing.sampleTimes[4] = (0.25);
28076 L4_MABX_M->Timing.sampleTimes[5] = (0.5);
28077 L4_MABX_M->Timing.sampleTimes[6] = (1.0);
28078 L4_MABX_M->Timing.sampleTimes[7] = (5.0);
28079 L4_MABX_M->Timing.sampleTimes[8] = (10.0);
28080
28081 /* task offsets */
28082 L4_MABX_M->Timing.offsetTimes[0] = (0.0);
28083 L4_MABX_M->Timing.offsetTimes[1] = (0.0);
28084 L4_MABX_M->Timing.offsetTimes[2] = (0.0);
28085 L4_MABX_M->Timing.offsetTimes[3] = (0.0);
28086 L4_MABX_M->Timing.offsetTimes[4] = (0.0);
28087 L4_MABX_M->Timing.offsetTimes[5] = (0.0);
28088 L4_MABX_M->Timing.offsetTimes[6] = (0.0);
28089 L4_MABX_M->Timing.offsetTimes[7] = (0.0);
28090 L4_MABX_M->Timing.offsetTimes[8] = (0.0);
28091 }
28092
28093 rtmSetTPtr(L4_MABX_M, &L4_MABX_M->Timing.tArray[0]);
28094
28095 {
28096 int_T *mdlSampleHits = L4_MABX_M->Timing.sampleHitArray;
28097 int_T *mdlPerTaskSampleHits = L4_MABX_M->Timing.perTaskSampleHitsArray;
28098 L4_MABX_M->Timing.perTaskSampleHits = (&mdlPerTaskSampleHits[0]);
28099 mdlSampleHits[0] = 1;
28100 L4_MABX_M->Timing.sampleHits = (&mdlSampleHits[0]);
28101 }
28102
28103 rtmSetTFinal(L4_MABX_M, -1);
28104 L4_MABX_M->Timing.stepSize0 = 0.01;
28105 L4_MABX_M->Timing.stepSize9 = 2.3283064365386963E-10;
28106 L4_MABX_M->Timing.stepSize10 = 2.3283064365386963E-10;
28107 L4_MABX_M->Timing.stepSize11 = 2.3283064365386963E-10;
28108 L4_MABX_M->solverInfoPtr = (&L4_MABX_M->solverInfo);
28109 L4_MABX_M->Timing.stepSize = (0.01);
28110 rtsiSetFixedStepSize(&L4_MABX_M->solverInfo, 0.01);
28111 rtsiSetSolverMode(&L4_MABX_M->solverInfo, SOLVER_MODE_MULTITASKING);
28112
28113 /* block I/O */
28114 (void) memset(((void *) &L4_MABX_B), 0,
28115 sizeof(B_L4_MABX_T));
28116
28117 {
28118 L4_MABX_B.EPBPCMInhibitStatusFeedback = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28119 L4_MABX_B.EPBPCMInhibitStatusFeedback_p = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28120 L4_MABX_B.EPBPCMManualStatusFeedback = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28121 L4_MABX_B.EPBPCMManualStatusFeedback_h = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28122 L4_MABX_B.EPBPCMInhibitStatusFeedback_d = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28123 L4_MABX_B.EPBPCMInhibitStatusFeedback_g = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28124 L4_MABX_B.EPBPCMManualStatusFeedback_a = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28125 L4_MABX_B.EPBPCMManualStatusFeedback_f = ENUM_XPR_FEEDBACK_T_NOT_AVAILABLE;
28126 L4_MABX_B.XPRErrorState = ENUM_XPR_ERROR_STATE_T_XPR_OK;
28127 L4_MABX_B.XPRErrorState_a = ENUM_XPR_ERROR_STATE_T_XPR_OK;
28128 L4_MABX_B.XPRControlMode = ENUM_XPR_CONTROL_MODE_T_NO_BRAKE_DEMAND;
28129 L4_MABX_B.XPRControlMode_d = ENUM_XPR_CONTROL_MODE_T_NO_BRAKE_DEMAND;
28130 L4_MABX_B.XBRPassThroughActive = ENUM_XBR_PASS_THROUGH_ACTIVE_T_NOT_ACTIVE;
28131 L4_MABX_B.DataTypeConversion_lr = ENUM_SWITCH_T_OFF;
28132 L4_MABX_B.DataTypeConversion1_lu = ENUM_SWITCH_T_OFF;
28133 L4_MABX_B.Pedal_2_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
28134 L4_MABX_B.Pedal_1_pwm_health_state = ENUM_SIGNAL_HEALTH_T_FAULT_INACTIVE;
28135 L4_MABX_B.BrkPedArbBrakeSwitch = ENUM_J1939_SWITCH_T_OFF;
28136 L4_MABX_B.BrkPedArbBrakeSwitch_c = ENUM_J1939_SWITCH_T_OFF;
28137 L4_MABX_B.DataTypeConversion1_cy = ENUM_J1939_SWITCH_T_OFF;
28138 L4_MABX_B.DataTypeConversion3_l5 = ENUM_J1939_SWITCH_T_OFF;
28139 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_NOT_AVAILABLE;
28140 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_NOT_AVAILABLE;
28141 L4_MABX_B.If_Then_Else_mo.XBRPriority = ENUM_XBR_PRIORITY_T_HIGHEST_PRIORITY;
28142 L4_MABX_B.If_Then_Else_mo.XBRPassThroughActive =
28143 ENUM_XBR_PASS_THROUGH_ACTIVE_T_NOT_ACTIVE;
28144 L4_MABX_B.If_Then_Else_mo.XBREnduranceBrakeIntegrationMod =
28145 ENUM_XBR_EBI_MODE_T_NO_EBI_ALLOWED;
28146 L4_MABX_B.If_Then_Else_mo.XBRControlMode =
28147 ENUM_XBR_CONTROL_MODE_T_OVERRIDE_DISABLED;
28148 }
28149
28150 /* exported global signals */
28151 GLB_Absolute_Timestamp = 0.0;
28152 ReAX_ActualHandwheelPos = 0.0;
28153 EthernetLinkStatus = 0.0;
28154 CurrentAzimuth_rad = 0.0;
28155 TargetAzimuth_rad = 0.0;
28156 TargetVelocity_kph = 0.0;
28157 Curvature = 0.0;
28158 CurrentVelocity_kph = 0.0;
28159 CrosstrackError = 0.0;
28160 GPS_X = 0.0;
28161 GPS_Y = 0.0;
28162 GPS_Time = 0.0;
28163 ReAX_EchoedSteerWheelPos = 0.0;
28164 SteerWheelAngle = 0.0;
28165 YawRate = 0.0;
28166 SPN1810_LongitudinalAcceleration = 0.0;
28167 WheelBasedVehicleSpeed = 0.0;
28168 BrakeSwitch = 0.0;
28169 Lateral_Control_Output = 0.0;
28170 Lateral_Control_Rate_Limiter_Output = 0.0;
28171 SteerCommandDeg = 0.0;
28172 DesiredSteeringAngle = 0.0;
28173 DIAG_CAN1_Count_Stuff_Errors = 0U;
28174 DIAG_CAN1_Count_Format_Errors = 0U;
28175 DIAG_CAN1_Count_Ack_Errors = 0U;
28176 DIAG_CAN1_Count_Bit0_Errors = 0U;
28177 DIAG_CAN1_Count_Bit1_Errors = 0U;
28178 DIAG_CAN1_Count_CRC_Errors = 0U;
28179 DIAG_CAN1_Count_RX_Lost = 0U;
28180 DIAG_CAN1_Count_RX_OK = 0U;
28181 DIAG_CAN1_Count_TX_OK = 0U;
28182 DIAG_CAN5_Count_Stuff_Errors = 0U;
28183 DIAG_CAN5_Count_Format_Errors = 0U;
28184 DIAG_CAN5_Count_Ack_Errors = 0U;
28185 DIAG_CAN5_Count_Bit0_Errors = 0U;
28186 DIAG_CAN5_Count_Bit1_Errors = 0U;
28187 DIAG_CAN5_Count_CRC_Errors = 0U;
28188 DIAG_CAN5_Count_RX_Lost = 0U;
28189 DIAG_CAN5_Count_RX_OK = 0U;
28190 DIAG_CAN5_Count_TX_OK = 0U;
28191 DIAG_CAN6_Count_Stuff_Errors = 0U;
28192 DIAG_CAN6_Count_Format_Errors = 0U;
28193 DIAG_CAN6_Count_Ack_Errors = 0U;
28194 DIAG_CAN6_Count_Bit0_Errors = 0U;
28195 DIAG_CAN6_Count_Bit1_Errors = 0U;
28196 DIAG_CAN6_Count_CRC_Errors = 0U;
28197 DIAG_CAN6_Count_RX_Lost = 0U;
28198 DIAG_CAN6_Count_RX_OK = 0U;
28199 DIAG_CAN6_Count_TX_OK = 0U;
28200 DIAG_CAN3_Count_Stuff_Errors = 0U;
28201 DIAG_CAN3_Count_Format_Errors = 0U;
28202 DIAG_CAN3_Count_Ack_Errors = 0U;
28203 DIAG_CAN3_Count_Bit0_Errors = 0U;
28204 DIAG_CAN3_Count_Bit1_Errors = 0U;
28205 DIAG_CAN3_Count_CRC_Errors = 0U;
28206 DIAG_CAN3_Count_RX_Lost = 0U;
28207 DIAG_CAN3_Count_RX_OK = 0U;
28208 DIAG_CAN3_Count_TX_OK = 0U;
28209 DIAG_CAN4_Count_Stuff_Errors = 0U;
28210 DIAG_CAN4_Count_Format_Errors = 0U;
28211 DIAG_CAN4_Count_Ack_Errors = 0U;
28212 DIAG_CAN4_Count_Bit0_Errors = 0U;
28213 DIAG_CAN4_Count_Bit1_Errors = 0U;
28214 DIAG_CAN4_Count_CRC_Errors = 0U;
28215 DIAG_CAN4_Count_RX_Lost = 0U;
28216 DIAG_CAN4_Count_RX_OK = 0U;
28217 DIAG_CAN4_Count_TX_OK = 0U;
28218 DIAG_CAN2_Count_Stuff_Errors = 0U;
28219 DIAG_CAN2_Count_Format_Errors = 0U;
28220 DIAG_CAN2_Count_Ack_Errors = 0U;
28221 DIAG_CAN2_Count_Bit0_Errors = 0U;
28222 DIAG_CAN2_Count_Bit1_Errors = 0U;
28223 DIAG_CAN2_Count_CRC_Errors = 0U;
28224 DIAG_CAN2_Count_RX_Lost = 0U;
28225 DIAG_CAN2_Count_RX_OK = 0U;
28226 DIAG_CAN2_Count_TX_OK = 0U;
28227 REAX_Handwheel_Torque = 0.0F;
28228 REAX_Handwheel_Velocity = 0.0F;
28229 REAX_Pull_Compensation = 0.0F;
28230 DIAG_CAN1_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28231 DIAG_CAN5_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28232 DIAG_CAN6_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28233 DIAG_CAN3_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28234 DIAG_CAN4_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28235 DIAG_CAN2_Status = ENUM_CAN_STATUS_DIAG_T_ACTIVE;
28236 SupervisorMode = 0U;
28237 REAX_Current_Mode = 0U;
28238 REAX_Req_Mode = 0U;
28239 REAX_Status = 0U;
28240
28241 {
28242 int32_T i;
28243 for (i = 0; i < 100; i++) {
28244 GLB_SWVERSION_CPV_[i] = ((uint8_T)0U);
28245 }
28246 }
28247
28248 MABX_Mode = 0U;
28249 EStop = false;
28250 EnableSw = false;
28251 RTMapsOk = false;
28252 EngagePB = false;
28253 AutonomousEnabled = false;
28254 AutonomousOutputEnabled = false;
28255 RateLimiterActive = false;
28256 Pedal_pwm_position = 0.0;
28257
28258 /* states (dwork) */
28259 (void) memset((void *)&L4_MABX_DW, 0,
28260 sizeof(DW_L4_MABX_T));
28261
28262 /* child S-Function registration */
28263 {
28264 RTWSfcnInfo *sfcnInfo = &L4_MABX_M->NonInlinedSFcns.sfcnInfo;
28265 L4_MABX_M->sfcnInfo = (sfcnInfo);
28266 rtssSetErrorStatusPtr(sfcnInfo, (&rtmGetErrorStatus(L4_MABX_M)));
28267 rtssSetNumRootSampTimesPtr(sfcnInfo, &L4_MABX_M->Sizes.numSampTimes);
28268 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[0] = &(rtmGetTPtr(L4_MABX_M)[0]);
28269 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[1] = &(rtmGetTPtr(L4_MABX_M)[1]);
28270 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[2] = &(rtmGetTPtr(L4_MABX_M)[2]);
28271 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[3] = &(rtmGetTPtr(L4_MABX_M)[3]);
28272 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[4] = &(rtmGetTPtr(L4_MABX_M)[4]);
28273 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[5] = &(rtmGetTPtr(L4_MABX_M)[5]);
28274 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[6] = &(rtmGetTPtr(L4_MABX_M)[6]);
28275 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[7] = &(rtmGetTPtr(L4_MABX_M)[7]);
28276 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[8] = &(rtmGetTPtr(L4_MABX_M)[8]);
28277 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[9] = &(rtmGetTPtr(L4_MABX_M)[9]);
28278 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[10] = &(rtmGetTPtr(L4_MABX_M)[10]);
28279 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[11] = &(rtmGetTPtr(L4_MABX_M)[11]);
28280 L4_MABX_M->NonInlinedSFcns.taskTimePtrs[12] = &(rtmGetTPtr(L4_MABX_M)[12]);
28281 rtssSetTPtrPtr(sfcnInfo,L4_MABX_M->NonInlinedSFcns.taskTimePtrs);
28282 rtssSetTStartPtr(sfcnInfo, &rtmGetTStart(L4_MABX_M));
28283 rtssSetTFinalPtr(sfcnInfo, &rtmGetTFinal(L4_MABX_M));
28284 rtssSetTimeOfLastOutputPtr(sfcnInfo, &rtmGetTimeOfLastOutput(L4_MABX_M));
28285 rtssSetStepSizePtr(sfcnInfo, &L4_MABX_M->Timing.stepSize);
28286 rtssSetStopRequestedPtr(sfcnInfo, &rtmGetStopRequested(L4_MABX_M));
28287 rtssSetDerivCacheNeedsResetPtr(sfcnInfo, &L4_MABX_M->derivCacheNeedsReset);
28288 rtssSetZCCacheNeedsResetPtr(sfcnInfo, &L4_MABX_M->zCCacheNeedsReset);
28289 rtssSetContTimeOutputInconsistentWithStateAtMajorStepPtr(sfcnInfo,
28290 &L4_MABX_M->CTOutputIncnstWithState);
28291 rtssSetSampleHitsPtr(sfcnInfo, &L4_MABX_M->Timing.sampleHits);
28292 rtssSetPerTaskSampleHitsPtr(sfcnInfo, &L4_MABX_M->Timing.perTaskSampleHits);
28293 rtssSetSimModePtr(sfcnInfo, &L4_MABX_M->simMode);
28294 rtssSetSolverInfoPtr(sfcnInfo, &L4_MABX_M->solverInfoPtr);
28295 }
28296
28297 L4_MABX_M->Sizes.numSFcns = (5);
28298
28299 /* register each child */
28300 {
28301 (void) memset((void *)&L4_MABX_M->NonInlinedSFcns.childSFunctions[0], 0,
28302 5*sizeof(SimStruct));
28303 L4_MABX_M->childSfunctions = (&L4_MABX_M->
28304 NonInlinedSFcns.childSFunctionPtrs[0]);
28305
28306 {
28307 int_T i;
28308 for (i = 0; i < 5; i++) {
28309 L4_MABX_M->childSfunctions[i] =
28310 (&L4_MABX_M->NonInlinedSFcns.childSFunctions[i]);
28311 }
28312 }
28313
28314 /* Level2 S-Function Block: L4_MABX/<S395>/dsa_tcpip_bkg_sfcn (dsa_tcpip_bkg_sfcn) */
28315 {
28316 SimStruct *rts = L4_MABX_M->childSfunctions[0];
28317
28318 /* timing info */
28319 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn0.sfcnPeriod;
28320 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn0.sfcnOffset;
28321 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn0.sfcnTsMap;
28322 (void) memset((void*)sfcnPeriod, 0,
28323 sizeof(time_T)*1);
28324 (void) memset((void*)sfcnOffset, 0,
28325 sizeof(time_T)*1);
28326 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28327 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28328 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28329
28330 {
28331 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[0]);
28332 }
28333
28334 _ssSetBlkInfo2PortInfo2Ptr(rts,
28335 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[0]);
28336
28337 /* Set up the mdlInfo pointer */
28338 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28339
28340 /* Allocate memory of model methods 2 */
28341 {
28342 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[0]);
28343 }
28344
28345 /* Allocate memory of model methods 3 */
28346 {
28347 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[0]);
28348 }
28349
28350 /* Allocate memory of model methods 4 */
28351 {
28352 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[0]);
28353 }
28354
28355 /* Allocate memory for states auxilliary information */
28356 {
28357 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[0]);
28358 ssSetPeriodicStatesInfo(rts,
28359 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[0]);
28360 }
28361
28362 /* path info */
28363 ssSetModelName(rts, "dsa_tcpip_bkg_sfcn");
28364 ssSetPath(rts,
28365 "L4_MABX/ETHERNET/TCPIP_Setup/Background_Task/dsa_tcpip_bkg_sfcn");
28366 ssSetRTModel(rts,L4_MABX_M);
28367 ssSetParentSS(rts, (NULL));
28368 ssSetRootSS(rts, rts);
28369 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28370
28371 /* work vectors */
28372 ssSetIWork(rts, (int_T *) &L4_MABX_DW.dsa_tcpip_bkg_sfcn_IWORK);
28373
28374 {
28375 struct _ssDWorkRecord *dWorkRecord = (struct _ssDWorkRecord *)
28376 &L4_MABX_M->NonInlinedSFcns.Sfcn0.dWork;
28377 struct _ssDWorkAuxRecord *dWorkAuxRecord = (struct _ssDWorkAuxRecord *)
28378 &L4_MABX_M->NonInlinedSFcns.Sfcn0.dWorkAux;
28379 ssSetSFcnDWork(rts, dWorkRecord);
28380 ssSetSFcnDWorkAux(rts, dWorkAuxRecord);
28381 _ssSetNumDWork(rts, 1);
28382
28383 /* IWORK */
28384 ssSetDWorkWidth(rts, 0, 1);
28385 ssSetDWorkDataType(rts, 0,SS_INTEGER);
28386 ssSetDWorkComplexSignal(rts, 0, 0);
28387 ssSetDWork(rts, 0, &L4_MABX_DW.dsa_tcpip_bkg_sfcn_IWORK);
28388 }
28389
28390 /* registration */
28391 dsa_tcpip_bkg_sfcn(rts);
28392 sfcnInitializeSizes(rts);
28393 sfcnInitializeSampleTimes(rts);
28394
28395 /* adjust sample time */
28396 ssSetSampleTime(rts, 0, -1.0);
28397 ssSetOffsetTime(rts, 0, -2.0);
28398 sfcnTsMap[0] = 9;
28399
28400 /* set compiled values of dynamic vector attributes */
28401 ssSetNumNonsampledZCs(rts, 0);
28402
28403 /* Update connectivity flags for each port */
28404 /* Update the BufferDstPort flags for each input port */
28405 }
28406
28407 /* Level2 S-Function Block: L4_MABX/<S396>/dsa_tcpip_irq_l2_sfcn (dsa_tcpip_irq_l2_sfcn) */
28408 {
28409 SimStruct *rts = L4_MABX_M->childSfunctions[1];
28410
28411 /* timing info */
28412 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn1.sfcnPeriod;
28413 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn1.sfcnOffset;
28414 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn1.sfcnTsMap;
28415 (void) memset((void*)sfcnPeriod, 0,
28416 sizeof(time_T)*1);
28417 (void) memset((void*)sfcnOffset, 0,
28418 sizeof(time_T)*1);
28419 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28420 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28421 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28422
28423 {
28424 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[1]);
28425 }
28426
28427 _ssSetBlkInfo2PortInfo2Ptr(rts,
28428 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[1]);
28429
28430 /* Set up the mdlInfo pointer */
28431 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28432
28433 /* Allocate memory of model methods 2 */
28434 {
28435 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[1]);
28436 }
28437
28438 /* Allocate memory of model methods 3 */
28439 {
28440 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[1]);
28441 }
28442
28443 /* Allocate memory of model methods 4 */
28444 {
28445 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[1]);
28446 }
28447
28448 /* Allocate memory for states auxilliary information */
28449 {
28450 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[1]);
28451 ssSetPeriodicStatesInfo(rts,
28452 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[1]);
28453 }
28454
28455 /* path info */
28456 ssSetModelName(rts, "dsa_tcpip_irq_l2_sfcn");
28457 ssSetPath(rts,
28458 "L4_MABX/ETHERNET/TCPIP_Setup/IRQ_Level_2_SW_INT/dsa_tcpip_irq_l2_sfcn");
28459 ssSetRTModel(rts,L4_MABX_M);
28460 ssSetParentSS(rts, (NULL));
28461 ssSetRootSS(rts, rts);
28462 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28463
28464 /* registration */
28465 dsa_tcpip_irq_l2_sfcn(rts);
28466 sfcnInitializeSizes(rts);
28467 sfcnInitializeSampleTimes(rts);
28468
28469 /* adjust sample time */
28470 ssSetSampleTime(rts, 0, -1.0);
28471 ssSetOffsetTime(rts, 0, -3.0);
28472 sfcnTsMap[0] = 10;
28473
28474 /* set compiled values of dynamic vector attributes */
28475 ssSetNumNonsampledZCs(rts, 0);
28476
28477 /* Update connectivity flags for each port */
28478 /* Update the BufferDstPort flags for each input port */
28479 }
28480
28481 /* Level2 S-Function Block: L4_MABX/<S397>/dsa_tcpip_irq_l1_sfcn (dsa_tcpip_irq_l1_sfcn) */
28482 {
28483 SimStruct *rts = L4_MABX_M->childSfunctions[2];
28484
28485 /* timing info */
28486 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn2.sfcnPeriod;
28487 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn2.sfcnOffset;
28488 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn2.sfcnTsMap;
28489 (void) memset((void*)sfcnPeriod, 0,
28490 sizeof(time_T)*1);
28491 (void) memset((void*)sfcnOffset, 0,
28492 sizeof(time_T)*1);
28493 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28494 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28495 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28496
28497 {
28498 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[2]);
28499 }
28500
28501 _ssSetBlkInfo2PortInfo2Ptr(rts,
28502 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[2]);
28503
28504 /* Set up the mdlInfo pointer */
28505 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28506
28507 /* Allocate memory of model methods 2 */
28508 {
28509 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[2]);
28510 }
28511
28512 /* Allocate memory of model methods 3 */
28513 {
28514 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[2]);
28515 }
28516
28517 /* Allocate memory of model methods 4 */
28518 {
28519 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[2]);
28520 }
28521
28522 /* Allocate memory for states auxilliary information */
28523 {
28524 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[2]);
28525 ssSetPeriodicStatesInfo(rts,
28526 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[2]);
28527 }
28528
28529 /* outputs */
28530 {
28531 ssSetPortInfoForOutputs(rts,
28532 &L4_MABX_M->NonInlinedSFcns.Sfcn2.outputPortInfo[0]);
28533 _ssSetNumOutputPorts(rts, 1);
28534 _ssSetPortInfo2ForOutputUnits(rts,
28535 &L4_MABX_M->NonInlinedSFcns.Sfcn2.outputPortUnits[0]);
28536 ssSetOutputPortUnit(rts, 0, 0);
28537 _ssSetPortInfo2ForOutputCoSimAttribute(rts,
28538 &L4_MABX_M->NonInlinedSFcns.Sfcn2.outputPortCoSimAttribute[0]);
28539 ssSetOutputPortIsContinuousQuantity(rts, 0, 0);
28540
28541 /* port 0 */
28542 {
28543 _ssSetOutputPortNumDimensions(rts, 0, 1);
28544 ssSetOutputPortWidth(rts, 0, 1);
28545 ssSetOutputPortSignal(rts, 0, (NULL));
28546 }
28547 }
28548
28549 /* path info */
28550 ssSetModelName(rts, "dsa_tcpip_irq_l1_sfcn");
28551 ssSetPath(rts,
28552 "L4_MABX/ETHERNET/TCPIP_Setup/Interrupt_Task/dsa_tcpip_irq_l1_sfcn");
28553 ssSetRTModel(rts,L4_MABX_M);
28554 ssSetParentSS(rts, (NULL));
28555 ssSetRootSS(rts, rts);
28556 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28557
28558 /* register function-calls */
28559 {
28560 int_T *callSysOutputs = (int_T *)
28561 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysOutputs;
28562 void **callSysArgs1 = (void **)
28563 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysArgs1;
28564 int_T *callSysArgs2 = (int_T *)
28565 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysArgs2;
28566 SysOutputFcn *callSysFcns = (SysOutputFcn *)
28567 &L4_MABX_M->NonInlinedSFcns.Sfcn2.callSysFcns;
28568
28569 {
28570 int32_T i;
28571 for (i = 0; i < 1; i++) {
28572 callSysOutputs[i] = 0;
28573 callSysFcns[i] = (SysOutputFcn) (NULL);
28574 callSysFcns[1+i] = (SysOutputFcn) (NULL);
28575 callSysFcns[2*1+i] = (SysOutputFcn) (NULL);
28576 callSysFcns[3*1+i] = (SysOutputFcn) (NULL);
28577 }
28578 }
28579
28580 ssSetCallSystemOutputPtr(rts, &callSysOutputs[0]);
28581 ssSetCallSystemOutputArg1List(rts, &callSysArgs1[0]);
28582 ssSetCallSystemOutputArg2List(rts, &callSysArgs2[0]);
28583 ssSetCallSystemOutputFcnList(rts, &callSysFcns[0]);
28584 callSysArgs1[0] = (void *)L4_MABX_M;
28585 callSysArgs2[0] = 0;
28586 callSysFcns[0] = (SysOutputFcn) L4_MABX_TcpInputProcessingFNI;
28587 callSysFcns[1+0] = (SysOutputFcn) L4_TcpInputProcessing_ResetFNI;
28588 callSysFcns[2+0] = (SysOutputFcn) (NULL);
28589 callSysFcns[3+0] = (SysOutputFcn) (NULL);
28590 callSysOutputs[0] = 1;
28591 }
28592
28593 /* registration */
28594 dsa_tcpip_irq_l1_sfcn(rts);
28595 sfcnInitializeSizes(rts);
28596 sfcnInitializeSampleTimes(rts);
28597
28598 /* adjust sample time */
28599 ssSetSampleTime(rts, 0, -1.0);
28600 ssSetOffsetTime(rts, 0, -4.0);
28601 sfcnTsMap[0] = 11;
28602
28603 /* set compiled values of dynamic vector attributes */
28604 ssSetOutputPortWidth(rts, 0, 1);
28605 ssSetNumNonsampledZCs(rts, 0);
28606
28607 /* Update connectivity flags for each port */
28608 _ssSetOutputPortConnected(rts, 0, 1);
28609 _ssSetOutputPortBeingMerged(rts, 0, 0);
28610
28611 /* Update the BufferDstPort flags for each input port */
28612 }
28613
28614 /* Level2 S-Function Block: L4_MABX/<S386>/dsa_tcpip_setup (dsa_tcpip_setup_sfcn) */
28615 {
28616 SimStruct *rts = L4_MABX_M->childSfunctions[3];
28617
28618 /* timing info */
28619 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn3.sfcnPeriod;
28620 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn3.sfcnOffset;
28621 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn3.sfcnTsMap;
28622 (void) memset((void*)sfcnPeriod, 0,
28623 sizeof(time_T)*1);
28624 (void) memset((void*)sfcnOffset, 0,
28625 sizeof(time_T)*1);
28626 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28627 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28628 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28629
28630 {
28631 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[3]);
28632 }
28633
28634 _ssSetBlkInfo2PortInfo2Ptr(rts,
28635 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[3]);
28636
28637 /* Set up the mdlInfo pointer */
28638 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28639
28640 /* Allocate memory of model methods 2 */
28641 {
28642 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[3]);
28643 }
28644
28645 /* Allocate memory of model methods 3 */
28646 {
28647 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[3]);
28648 }
28649
28650 /* Allocate memory of model methods 4 */
28651 {
28652 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[3]);
28653 }
28654
28655 /* Allocate memory for states auxilliary information */
28656 {
28657 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[3]);
28658 ssSetPeriodicStatesInfo(rts,
28659 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[3]);
28660 }
28661
28662 /* outputs */
28663 {
28664 ssSetPortInfoForOutputs(rts,
28665 &L4_MABX_M->NonInlinedSFcns.Sfcn3.outputPortInfo[0]);
28666 _ssSetNumOutputPorts(rts, 1);
28667 _ssSetPortInfo2ForOutputUnits(rts,
28668 &L4_MABX_M->NonInlinedSFcns.Sfcn3.outputPortUnits[0]);
28669 ssSetOutputPortUnit(rts, 0, 0);
28670 _ssSetPortInfo2ForOutputCoSimAttribute(rts,
28671 &L4_MABX_M->NonInlinedSFcns.Sfcn3.outputPortCoSimAttribute[0]);
28672 ssSetOutputPortIsContinuousQuantity(rts, 0, 0);
28673
28674 /* port 0 */
28675 {
28676 _ssSetOutputPortNumDimensions(rts, 0, 1);
28677 ssSetOutputPortWidth(rts, 0, 1);
28678 ssSetOutputPortSignal(rts, 0, ((real_T *) &EthernetLinkStatus));
28679 }
28680 }
28681
28682 /* path info */
28683 ssSetModelName(rts, "dsa_tcpip_setup");
28684 ssSetPath(rts, "L4_MABX/ETHERNET/TCPIP_Setup/dsa_tcpip_setup");
28685 ssSetRTModel(rts,L4_MABX_M);
28686 ssSetParentSS(rts, (NULL));
28687 ssSetRootSS(rts, rts);
28688 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28689
28690 /* parameters */
28691 {
28692 mxArray **sfcnParams = (mxArray **)
28693 &L4_MABX_M->NonInlinedSFcns.Sfcn3.params;
28694 ssSetSFcnParamsCount(rts, 6);
28695 ssSetSFcnParamsPtr(rts, &sfcnParams[0]);
28696 ssSetSFcnParam(rts, 0, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P1_Size);
28697 ssSetSFcnParam(rts, 1, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P2_Size);
28698 ssSetSFcnParam(rts, 2, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P3_Size);
28699 ssSetSFcnParam(rts, 3, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P4_Size);
28700 ssSetSFcnParam(rts, 4, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P5_Size);
28701 ssSetSFcnParam(rts, 5, (mxArray*)L4_MABX_P.dsa_tcpip_setup_P6_Size);
28702 }
28703
28704 /* work vectors */
28705 ssSetIWork(rts, (int_T *) &L4_MABX_DW.dsa_tcpip_setup_IWORK);
28706 ssSetPWork(rts, (void **) &L4_MABX_DW.dsa_tcpip_setup_PWORK);
28707
28708 {
28709 struct _ssDWorkRecord *dWorkRecord = (struct _ssDWorkRecord *)
28710 &L4_MABX_M->NonInlinedSFcns.Sfcn3.dWork;
28711 struct _ssDWorkAuxRecord *dWorkAuxRecord = (struct _ssDWorkAuxRecord *)
28712 &L4_MABX_M->NonInlinedSFcns.Sfcn3.dWorkAux;
28713 ssSetSFcnDWork(rts, dWorkRecord);
28714 ssSetSFcnDWorkAux(rts, dWorkAuxRecord);
28715 _ssSetNumDWork(rts, 2);
28716
28717 /* IWORK */
28718 ssSetDWorkWidth(rts, 0, 1);
28719 ssSetDWorkDataType(rts, 0,SS_INTEGER);
28720 ssSetDWorkComplexSignal(rts, 0, 0);
28721 ssSetDWork(rts, 0, &L4_MABX_DW.dsa_tcpip_setup_IWORK);
28722
28723 /* PWORK */
28724 ssSetDWorkWidth(rts, 1, 1);
28725 ssSetDWorkDataType(rts, 1,SS_POINTER);
28726 ssSetDWorkComplexSignal(rts, 1, 0);
28727 ssSetDWork(rts, 1, &L4_MABX_DW.dsa_tcpip_setup_PWORK);
28728 }
28729
28730 /* registration */
28731 dsa_tcpip_setup_sfcn(rts);
28732 sfcnInitializeSizes(rts);
28733 sfcnInitializeSampleTimes(rts);
28734
28735 /* adjust sample time */
28736 ssSetSampleTime(rts, 0, 0.01);
28737 ssSetOffsetTime(rts, 0, 0.0);
28738 sfcnTsMap[0] = 0;
28739
28740 /* set compiled values of dynamic vector attributes */
28741 ssSetNumNonsampledZCs(rts, 0);
28742
28743 /* Update connectivity flags for each port */
28744 _ssSetOutputPortConnected(rts, 0, 1);
28745 _ssSetOutputPortBeingMerged(rts, 0, 0);
28746
28747 /* Update the BufferDstPort flags for each input port */
28748 }
28749
28750 /* Level2 S-Function Block: L4_MABX/<S387>/TCPIP_Com (dsa_tcpip_udp_sfcn) */
28751 {
28752 SimStruct *rts = L4_MABX_M->childSfunctions[4];
28753
28754 /* timing info */
28755 time_T *sfcnPeriod = L4_MABX_M->NonInlinedSFcns.Sfcn4.sfcnPeriod;
28756 time_T *sfcnOffset = L4_MABX_M->NonInlinedSFcns.Sfcn4.sfcnOffset;
28757 int_T *sfcnTsMap = L4_MABX_M->NonInlinedSFcns.Sfcn4.sfcnTsMap;
28758 (void) memset((void*)sfcnPeriod, 0,
28759 sizeof(time_T)*1);
28760 (void) memset((void*)sfcnOffset, 0,
28761 sizeof(time_T)*1);
28762 ssSetSampleTimePtr(rts, &sfcnPeriod[0]);
28763 ssSetOffsetTimePtr(rts, &sfcnOffset[0]);
28764 ssSetSampleTimeTaskIDPtr(rts, sfcnTsMap);
28765
28766 {
28767 ssSetBlkInfo2Ptr(rts, &L4_MABX_M->NonInlinedSFcns.blkInfo2[4]);
28768 }
28769
28770 _ssSetBlkInfo2PortInfo2Ptr(rts,
28771 &L4_MABX_M->NonInlinedSFcns.inputOutputPortInfo2[4]);
28772
28773 /* Set up the mdlInfo pointer */
28774 ssSetRTWSfcnInfo(rts, L4_MABX_M->sfcnInfo);
28775
28776 /* Allocate memory of model methods 2 */
28777 {
28778 ssSetModelMethods2(rts, &L4_MABX_M->NonInlinedSFcns.methods2[4]);
28779 }
28780
28781 /* Allocate memory of model methods 3 */
28782 {
28783 ssSetModelMethods3(rts, &L4_MABX_M->NonInlinedSFcns.methods3[4]);
28784 }
28785
28786 /* Allocate memory of model methods 4 */
28787 {
28788 ssSetModelMethods4(rts, &L4_MABX_M->NonInlinedSFcns.methods4[4]);
28789 }
28790
28791 /* Allocate memory for states auxilliary information */
28792 {
28793 ssSetStatesInfo2(rts, &L4_MABX_M->NonInlinedSFcns.statesInfo2[4]);
28794 ssSetPeriodicStatesInfo(rts,
28795 &L4_MABX_M->NonInlinedSFcns.periodicStatesInfo[4]);
28796 }
28797
28798 /* inputs */
28799 {
28800 _ssSetNumInputPorts(rts, 3);
28801 ssSetPortInfoForInputs(rts,
28802 &L4_MABX_M->NonInlinedSFcns.Sfcn4.inputPortInfo[0]);
28803 _ssSetPortInfo2ForInputUnits(rts,
28804 &L4_MABX_M->NonInlinedSFcns.Sfcn4.inputPortUnits[0]);
28805 ssSetInputPortUnit(rts, 0, 0);
28806 ssSetInputPortUnit(rts, 1, 0);
28807 ssSetInputPortUnit(rts, 2, 0);
28808 _ssSetPortInfo2ForInputCoSimAttribute(rts,
28809 &L4_MABX_M->NonInlinedSFcns.Sfcn4.inputPortCoSimAttribute[0]);
28810 ssSetInputPortIsContinuousQuantity(rts, 0, 0);
28811 ssSetInputPortIsContinuousQuantity(rts, 1, 0);
28812 ssSetInputPortIsContinuousQuantity(rts, 2, 0);
28813
28814 /* port 0 */
28815 {
28816 boolean_T const **sfcnUPtrs = (boolean_T const **)
28817 &L4_MABX_M->NonInlinedSFcns.Sfcn4.UPtrs0;
28818 sfcnUPtrs[0] = &L4_MABX_B.Enable;
28819 ssSetInputPortSignalPtrs(rts, 0, (InputPtrsType)&sfcnUPtrs[0]);
28820 _ssSetInputPortNumDimensions(rts, 0, 1);
28821 ssSetInputPortWidth(rts, 0, 1);
28822 }
28823
28824 /* port 1 */
28825 {
28826 uint32_T const **sfcnUPtrs = (uint32_T const **)
28827 &L4_MABX_M->NonInlinedSFcns.Sfcn4.UPtrs1;
28828 sfcnUPtrs[0] = &L4_MABX_B.Encoder_o2;
28829 ssSetInputPortSignalPtrs(rts, 1, (InputPtrsType)&sfcnUPtrs[0]);
28830 _ssSetInputPortNumDimensions(rts, 1, 1);
28831 ssSetInputPortWidth(rts, 1, 1);
28832 }
28833
28834 /* port 2 */
28835 {
28836 uint8_T const **sfcnUPtrs = (uint8_T const **)
28837 &L4_MABX_M->NonInlinedSFcns.Sfcn4.UPtrs2;
28838
28839 {
28840 int_T i1;
28841 const uint8_T *u2 = L4_MABX_B.Encoder_o1;
28842 for (i1=0; i1 < 22; i1++) {
28843 sfcnUPtrs[i1] = &u2[i1];
28844 }
28845 }
28846
28847 ssSetInputPortSignalPtrs(rts, 2, (InputPtrsType)&sfcnUPtrs[0]);
28848 _ssSetInputPortNumDimensions(rts, 2, 1);
28849 ssSetInputPortWidth(rts, 2, 22);
28850 }
28851 }
28852
28853 /* outputs */
28854 {
28855 ssSetPortInfoForOutputs(rts,
28856 &L4_MABX_M->NonInlinedSFcns.Sfcn4.outputPortInfo[0]);
28857 _ssSetNumOutputPorts(rts, 3);
28858 _ssSetPortInfo2ForOutputUnits(rts,
28859 &L4_MABX_M->NonInlinedSFcns.Sfcn4.outputPortUnits[0]);
28860 ssSetOutputPortUnit(rts, 0, 0);
28861 ssSetOutputPortUnit(rts, 1, 0);
28862 ssSetOutputPortUnit(rts, 2, 0);
28863 _ssSetPortInfo2ForOutputCoSimAttribute(rts,
28864 &L4_MABX_M->NonInlinedSFcns.Sfcn4.outputPortCoSimAttribute[0]);
28865 ssSetOutputPortIsContinuousQuantity(rts, 0, 0);
28866 ssSetOutputPortIsContinuousQuantity(rts, 1, 0);
28867 ssSetOutputPortIsContinuousQuantity(rts, 2, 0);
28868
28869 /* port 0 */
28870 {
28871 _ssSetOutputPortNumDimensions(rts, 0, 1);
28872 ssSetOutputPortWidth(rts, 0, 3);
28873 ssSetOutputPortSignal(rts, 0, ((uint32_T *) L4_MABX_B.TCPIP_Com_o1));
28874 }
28875
28876 /* port 1 */
28877 {
28878 _ssSetOutputPortNumDimensions(rts, 1, 1);
28879 ssSetOutputPortWidth(rts, 1, 1);
28880 ssSetOutputPortSignal(rts, 1, ((uint32_T *) &L4_MABX_B.TCPIP_Com_o2));
28881 }
28882
28883 /* port 2 */
28884 {
28885 _ssSetOutputPortNumDimensions(rts, 2, 1);
28886 ssSetOutputPortWidth(rts, 2, 128);
28887 ssSetOutputPortSignal(rts, 2, ((uint8_T *) L4_MABX_B.TCPIP_Com_o3));
28888 }
28889 }
28890
28891 /* path info */
28892 ssSetModelName(rts, "TCPIP_Com");
28893 ssSetPath(rts, "L4_MABX/ETHERNET/UDPIP_Communication/TCPIP_Com");
28894 ssSetRTModel(rts,L4_MABX_M);
28895 ssSetParentSS(rts, (NULL));
28896 ssSetRootSS(rts, rts);
28897 ssSetVersion(rts, SIMSTRUCT_VERSION_LEVEL2);
28898
28899 /* parameters */
28900 {
28901 mxArray **sfcnParams = (mxArray **)
28902 &L4_MABX_M->NonInlinedSFcns.Sfcn4.params;
28903 ssSetSFcnParamsCount(rts, 6);
28904 ssSetSFcnParamsPtr(rts, &sfcnParams[0]);
28905 ssSetSFcnParam(rts, 0, (mxArray*)L4_MABX_P.TCPIP_Com_P1_Size);
28906 ssSetSFcnParam(rts, 1, (mxArray*)L4_MABX_P.TCPIP_Com_P2_Size);
28907 ssSetSFcnParam(rts, 2, (mxArray*)L4_MABX_P.TCPIP_Com_P3_Size);
28908 ssSetSFcnParam(rts, 3, (mxArray*)L4_MABX_P.TCPIP_Com_P4_Size);
28909 ssSetSFcnParam(rts, 4, (mxArray*)L4_MABX_P.TCPIP_Com_P5_Size);
28910 ssSetSFcnParam(rts, 5, (mxArray*)L4_MABX_P.TCPIP_Com_P6_Size);
28911 }
28912
28913 /* work vectors */
28914 ssSetPWork(rts, (void **) &L4_MABX_DW.TCPIP_Com_PWORK);
28915
28916 {
28917 struct _ssDWorkRecord *dWorkRecord = (struct _ssDWorkRecord *)
28918 &L4_MABX_M->NonInlinedSFcns.Sfcn4.dWork;
28919 struct _ssDWorkAuxRecord *dWorkAuxRecord = (struct _ssDWorkAuxRecord *)
28920 &L4_MABX_M->NonInlinedSFcns.Sfcn4.dWorkAux;
28921 ssSetSFcnDWork(rts, dWorkRecord);
28922 ssSetSFcnDWorkAux(rts, dWorkAuxRecord);
28923 _ssSetNumDWork(rts, 1);
28924
28925 /* PWORK */
28926 ssSetDWorkWidth(rts, 0, 1);
28927 ssSetDWorkDataType(rts, 0,SS_POINTER);
28928 ssSetDWorkComplexSignal(rts, 0, 0);
28929 ssSetDWork(rts, 0, &L4_MABX_DW.TCPIP_Com_PWORK);
28930 }
28931
28932 /* registration */
28933 dsa_tcpip_udp_sfcn(rts);
28934 sfcnInitializeSizes(rts);
28935 sfcnInitializeSampleTimes(rts);
28936
28937 /* adjust sample time */
28938 ssSetSampleTime(rts, 0, 0.01);
28939 ssSetOffsetTime(rts, 0, 0.0);
28940 sfcnTsMap[0] = 0;
28941
28942 /* set compiled values of dynamic vector attributes */
28943 ssSetNumNonsampledZCs(rts, 0);
28944
28945 /* Update connectivity flags for each port */
28946 _ssSetInputPortConnected(rts, 0, 1);
28947 _ssSetInputPortConnected(rts, 1, 1);
28948 _ssSetInputPortConnected(rts, 2, 1);
28949 _ssSetOutputPortConnected(rts, 0, 1);
28950 _ssSetOutputPortConnected(rts, 1, 1);
28951 _ssSetOutputPortConnected(rts, 2, 1);
28952 _ssSetOutputPortBeingMerged(rts, 0, 0);
28953 _ssSetOutputPortBeingMerged(rts, 1, 0);
28954 _ssSetOutputPortBeingMerged(rts, 2, 0);
28955
28956 /* Update the BufferDstPort flags for each input port */
28957 ssSetInputPortBufferDstPort(rts, 0, -1);
28958 ssSetInputPortBufferDstPort(rts, 1, -1);
28959 ssSetInputPortBufferDstPort(rts, 2, -1);
28960 }
28961 }
28962
28963 {
28964 /* user code (registration function declaration) */
28965 /*Initialize global TRC pointers. */
28966 L4_MABX_rti_init_trc_pointers();
28967 }
28968
28969 /* Start for Enabled SubSystem: '<S726>/Slew_at_event' */
28970 L4_MABX_DW.Slew_at_event_MODE = false;
28971
28972 /* End of Start for SubSystem: '<S726>/Slew_at_event' */
28973
28974 /* Start for S-Function (dsa_tcpip_setup_sfcn): '<S386>/dsa_tcpip_setup' */
28975 /* Level2 S-Function Block: '<S386>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
28976 {
28977 SimStruct *rts = L4_MABX_M->childSfunctions[3];
28978 sfcnStart(rts);
28979 if (ssGetErrorStatus(rts) != (NULL))
28980 return;
28981 }
28982
28983 /* Start for Constant: '<S3>/Enable' */
28984 L4_MABX_B.Enable = L4_MABX_P.Enable_Value;
28985
28986 /* Start for S-Function (dsa_gen_tx_RTMapsEncode_sfun): '<S393>/Encoder' */
28987 Init_Tx_RTMapsEncode();
28988
28989 /* Start for S-Function (dsa_tcpip_udp_sfcn): '<S387>/TCPIP_Com' */
28990 /* Level2 S-Function Block: '<S387>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
28991 {
28992 SimStruct *rts = L4_MABX_M->childSfunctions[4];
28993 sfcnStart(rts);
28994 if (ssGetErrorStatus(rts) != (NULL))
28995 return;
28996 }
28997
28998 /* Start for S-Function (dsa_gen_rx_RTMapsDecode_sfun): '<S390>/Decoder' */
28999 Init_Rx_RTMapsDecode();
29000
29001 /* Start for Atomic SubSystem: '<S65>/Task_10ms' */
29002 /* Start for RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' */
29003 L4_MABX_B.distanceSpdTarget_e = L4_MABX_P.TmpRTBAtSignalConversion1Inport;
29004
29005 /* Start for Enabled SubSystem: '<S79>/Throttle_controller_gov' */
29006 L4_MABX_DW.Throttle_controller_gov_MODE = false;
29007
29008 /* Start for Enabled SubSystem: '<S238>/Calculate_D_term' */
29009 L4_M_Calculate_D_term_Start(&L4_MABX_DW.Calculate_D_term_h);
29010
29011 /* End of Start for SubSystem: '<S238>/Calculate_D_term' */
29012
29013 /* Start for Enabled SubSystem: '<S238>/Calculate_I_term' */
29014 L4_M_Calculate_I_term_Start(&L4_MABX_DW.Calculate_I_term_n);
29015
29016 /* End of Start for SubSystem: '<S238>/Calculate_I_term' */
29017
29018 /* End of Start for SubSystem: '<S79>/Throttle_controller_gov' */
29019
29020 /* Start for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
29021 L4_MABX_DW.Determine_shift_interlock_brake = false;
29022
29023 /* End of Start for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
29024
29025 /* Start for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
29026 L4_MABX_DW.Determine_brake_hold_pressure_t = false;
29027
29028 /* End of Start for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
29029
29030 /* Start for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
29031 L4_MABX_DW.Bendix_2C2_brake_application_pr = false;
29032
29033 /* Start for Enabled SubSystem: '<S106>/Calculate_D_term' */
29034 L4_M_Calculate_D_term_Start(&L4_MABX_DW.Calculate_D_term);
29035
29036 /* End of Start for SubSystem: '<S106>/Calculate_D_term' */
29037
29038 /* Start for Enabled SubSystem: '<S106>/Calculate_I_term' */
29039 L4_M_Calculate_I_term_Start(&L4_MABX_DW.Calculate_I_term);
29040
29041 /* End of Start for SubSystem: '<S106>/Calculate_I_term' */
29042
29043 /* End of Start for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
29044
29045 /* Start for RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' */
29046 L4_MABX_B.pathSpdLimit_a = L4_MABX_P.TmpRTBAtSignalConversion3Inport;
29047
29048 /* Start for RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' */
29049 L4_MABX_B.distance_o = L4_MABX_P.TmpRTBAtSignalConversion2Inport;
29050
29051 /* Start for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
29052 L4_MABX_DW.Bendix_2C2_vehicle_speed_feedba = false;
29053
29054 /* Start for Enabled SubSystem: '<S144>/Calculate_D_term' */
29055 L4_M_Calculate_D_term_Start(&L4_MABX_DW.Calculate_D_term_p);
29056
29057 /* End of Start for SubSystem: '<S144>/Calculate_D_term' */
29058
29059 /* Start for Enabled SubSystem: '<S144>/Calculate_I_term' */
29060 L4_M_Calculate_I_term_Start(&L4_MABX_DW.Calculate_I_term_e);
29061
29062 /* End of Start for SubSystem: '<S144>/Calculate_I_term' */
29063
29064 /* End of Start for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
29065
29066 /* Start for Enabled SubSystem: '<S79>/Engine_speed_target' */
29067 L4_MABX_DW.Engine_speed_target_MODE = false;
29068
29069 /* End of Start for SubSystem: '<S79>/Engine_speed_target' */
29070
29071 /* Start for Enabled SubSystem: '<S276>/Slew_at_event' */
29072 L4_MABX_DW.Slew_at_event_MODE_d = false;
29073
29074 /* End of Start for SubSystem: '<S276>/Slew_at_event' */
29075
29076 /* Start for RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' */
29077 L4_MABX_B.previewSteeringAngle_b = L4_MABX_P.TmpRTBAtrad2deg1Inport1_Initial;
29078
29079 /* Start for RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' */
29080 L4_MABX_B.TmpRTBAtsignCurveOffsetInport1 =
29081 L4_MABX_P.TmpRTBAtsignCurveOffsetInport1_;
29082
29083 /* Start for RateTransition: '<S277>/TmpRTBAtAdd2Inport2' */
29084 L4_MABX_B.TmpRTBAtAdd2Inport2 = L4_MABX_P.TmpRTBAtAdd2Inport2_InitialCond;
29085
29086 /* End of Start for SubSystem: '<S65>/Task_10ms' */
29087
29088 /* Start for Atomic SubSystem: '<S815>/CAN_TX_10ms' */
29089
29090 /* Start for Width: '<S972>/Width' */
29091 L4_MABX_B.Width_lp = 16U;
29092
29093 /* End of Start for SubSystem: '<S815>/CAN_TX_10ms' */
29094
29095 /* Start for Atomic SubSystem: '<S815>/CAN_TX_20ms' */
29096
29097 /* Start for Width: '<S1000>/Width' */
29098 L4_MABX_B.Width_l = 16U;
29099
29100 /* End of Start for SubSystem: '<S815>/CAN_TX_20ms' */
29101
29102 /* Start for Atomic SubSystem: '<S815>/CAN_TX_5000ms' */
29103
29104 /* Start for Width: '<S1015>/Width' */
29105 L4_MABX_B.Width = 8U;
29106
29107 /* End of Start for SubSystem: '<S815>/CAN_TX_5000ms' */
29108
29109 /* Start for RateTransition: '<S1044>/TmpRTBAtANDInport1' */
29110 L4_MABX_B.TmpRTBAtANDInport1 = L4_MABX_P.TmpRTBAtANDInport1_InitialCondi;
29111
29112 /* Start for Atomic SubSystem: '<S65>/Task_20ms' */
29113 /* Start for Constant: '<S383>/InitialHeading' */
29114 L4_MABX_B.InitialHeading = L4_MABX_P.InitialHeading_Value;
29115
29116 /* Start for Constant: '<S383>/InitialPosition' */
29117 L4_MABX_B.InitialPosition = L4_MABX_P.InitialPosition_Value;
29118
29119 /* Start for Constant: '<S383>/InitialXPosition' */
29120 L4_MABX_B.InitialXPosition = L4_MABX_P.InitialXPosition_Value;
29121
29122 /* Start for Constant: '<S383>/InitialYPosition' */
29123 L4_MABX_B.InitialYPosition = L4_MABX_P.InitialYPosition_Value;
29124
29125 /* End of Start for SubSystem: '<S65>/Task_20ms' */
29126
29127 /* Start for S-Function (rti_commonblock): '<S394>/S-Function1' incorporates:
29128 * SubSystem: '<S386>/Background_Task'
29129 */
29130 L4_MA_Background_Task_Start();
29131
29132 /* End of Start for S-Function (rti_commonblock): '<S394>/S-Function1' */
29133
29134 /* Start for S-Function (rti_commonblock): '<S400>/S-Function1' incorporates:
29135 * SubSystem: '<S386>/Interrupt_Task'
29136 */
29137 L4_MAB_Interrupt_Task_Start();
29138
29139 /* End of Start for S-Function (rti_commonblock): '<S400>/S-Function1' */
29140 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C1_Trig_ZCE = UNINITIALIZED_ZCSIG;
29141 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M1_C2_Trig_ZCE = UNINITIALIZED_ZCSIG;
29142 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C1_Trig_ZCE = UNINITIALIZED_ZCSIG;
29143 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M2_C2_Trig_ZCE = UNINITIALIZED_ZCSIG;
29144 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C1_Trig_ZCE = UNINITIALIZED_ZCSIG;
29145 L4_MABX_PrevZCX.CAN_TYPE1_BOR_M3_C2_Trig_ZCE = UNINITIALIZED_ZCSIG;
29146 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE_i = POS_ZCSIG;
29147 L4_MABX_PrevZCX.CAN_TYPE1_TX_M1_C1_Trig_ZCE = POS_ZCSIG;
29148
29149 {
29150 int32_T i;
29151
29152 /* InitializeConditions for UnitDelay: '<S762>/FixPt Unit Delay2' */
29153 L4_MABX_DW.FixPtUnitDelay2_DSTATE =
29154 L4_MABX_P.FixPtUnitDelay2_InitialCondit_j;
29155
29156 /* InitializeConditions for UnitDelay: '<S762>/FixPt Unit Delay1' */
29157 L4_MABX_DW.FixPtUnitDelay1_DSTATE =
29158 L4_MABX_P.FixPtUnitDelay1_InitialCondi_je;
29159
29160 /* InitializeConditions for UnitDelay: '<S754>/FixPt Unit Delay2' */
29161 L4_MABX_DW.FixPtUnitDelay2_DSTATE_j =
29162 L4_MABX_P.FixPtUnitDelay2_InitialCondit_b;
29163
29164 /* InitializeConditions for UnitDelay: '<S754>/FixPt Unit Delay1' */
29165 L4_MABX_DW.FixPtUnitDelay1_DSTATE_m =
29166 L4_MABX_P.FixPtUnitDelay1_InitialCondi_p2;
29167
29168 /* InitializeConditions for UnitDelay: '<S778>/FixPt Unit Delay2' */
29169 L4_MABX_DW.FixPtUnitDelay2_DSTATE_f =
29170 L4_MABX_P.FixPtUnitDelay2_InitialCondit_h;
29171
29172 /* InitializeConditions for UnitDelay: '<S778>/FixPt Unit Delay1' */
29173 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a =
29174 L4_MABX_P.FixPtUnitDelay1_InitialCondit_c;
29175
29176 /* InitializeConditions for UnitDelay: '<S770>/FixPt Unit Delay2' */
29177 L4_MABX_DW.FixPtUnitDelay2_DSTATE_i =
29178 L4_MABX_P.FixPtUnitDelay2_InitialCondit_k;
29179
29180 /* InitializeConditions for UnitDelay: '<S770>/FixPt Unit Delay1' */
29181 L4_MABX_DW.FixPtUnitDelay1_DSTATE_my =
29182 L4_MABX_P.FixPtUnitDelay1_InitialCondit_n;
29183
29184 /* InitializeConditions for UnitDelay: '<S732>/Unit_Delay' */
29185 L4_MABX_DW.Unit_Delay_DSTATE_kp = L4_MABX_P.Unit_Delay_InitialCondition_cd;
29186
29187 /* InitializeConditions for UnitDelay: '<S799>/Unit_Delay1' */
29188 L4_MABX_DW.Unit_Delay1_DSTATE = L4_MABX_P.Unit_Delay1_InitialCondition_mv;
29189
29190 /* InitializeConditions for UnitDelay: '<S799>/Unit_Delay2' */
29191 L4_MABX_DW.Unit_Delay2_DSTATE = L4_MABX_P.Unit_Delay2_InitialCondition_a1;
29192
29193 /* InitializeConditions for UnitDelay: '<S732>/Unit_Delay1' */
29194 L4_MABX_DW.Unit_Delay1_DSTATE_l = L4_MABX_P.Unit_Delay1_InitialCondition_c;
29195
29196 /* InitializeConditions for UnitDelay: '<S800>/Unit_Delay1' */
29197 L4_MABX_DW.Unit_Delay1_DSTATE_h = L4_MABX_P.Unit_Delay1_InitialCondition_e;
29198
29199 /* InitializeConditions for UnitDelay: '<S800>/Unit_Delay2' */
29200 L4_MABX_DW.Unit_Delay2_DSTATE_i = L4_MABX_P.Unit_Delay2_InitialCondition_c;
29201
29202 /* InitializeConditions for UnitDelay: '<S798>/FixPt Unit Delay2' */
29203 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o =
29204 L4_MABX_P.FixPtUnitDelay2_InitialCondi_kv;
29205
29206 /* InitializeConditions for UnitDelay: '<S798>/FixPt Unit Delay1' */
29207 L4_MABX_DW.FixPtUnitDelay1_DSTATE_c =
29208 L4_MABX_P.FixPtUnitDelay1_InitialCondi_fo;
29209
29210 /* InitializeConditions for UnitDelay: '<S797>/FixPt Unit Delay2' */
29211 L4_MABX_DW.FixPtUnitDelay2_DSTATE_d =
29212 L4_MABX_P.FixPtUnitDelay2_InitialCondi_cg;
29213
29214 /* InitializeConditions for UnitDelay: '<S797>/FixPt Unit Delay1' */
29215 L4_MABX_DW.FixPtUnitDelay1_DSTATE_k =
29216 L4_MABX_P.FixPtUnitDelay1_InitialCondi_b5;
29217
29218 /* InitializeConditions for UnitDelay: '<S786>/FixPt Unit Delay2' */
29219 L4_MABX_DW.FixPtUnitDelay2_DSTATE_fl =
29220 L4_MABX_P.FixPtUnitDelay2_InitialCondi_jx;
29221
29222 /* InitializeConditions for UnitDelay: '<S786>/FixPt Unit Delay1' */
29223 L4_MABX_DW.FixPtUnitDelay1_DSTATE_mr =
29224 L4_MABX_P.FixPtUnitDelay1_InitialCondit_g;
29225
29226 /* InitializeConditions for RateTransition: '<S403>/Rate Transition' */
29227 L4_MABX_DW.RateTransition_Buffer0 =
29228 L4_MABX_P.RateTransition_InitialCondition;
29229 L4_MABX_DW.RateTransition_write_buf = -1;
29230 L4_MABX_DW.RateTransition_read_buf = -1;
29231
29232 /* InitializeConditions for UnitDelay: '<S635>/Unit_Delay3' */
29233 L4_MABX_DW.Unit_Delay3_DSTATE = L4_MABX_P.Unit_Delay3_InitialCondition;
29234
29235 /* InitializeConditions for UnitDelay: '<S635>/Unit_Delay' */
29236 L4_MABX_DW.Unit_Delay_DSTATE_mg = L4_MABX_P.Unit_Delay_InitialCondition_ct;
29237
29238 /* InitializeConditions for UnitDelay: '<S641>/Unit_Delay' */
29239 L4_MABX_DW.Unit_Delay_DSTATE_a = L4_MABX_P.Unit_Delay_InitialCondition_av;
29240
29241 /* InitializeConditions for S-Function (dsa_tcpip_setup_sfcn): '<S386>/dsa_tcpip_setup' */
29242 /* Level2 S-Function Block: '<S386>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
29243 {
29244 SimStruct *rts = L4_MABX_M->childSfunctions[3];
29245 sfcnInitializeConditions(rts);
29246 if (ssGetErrorStatus(rts) != (NULL))
29247 return;
29248 }
29249
29250 /* InitializeConditions for DiscretePulseGenerator: '<S385>/Heartbeat' */
29251 L4_MABX_DW.clockTickCounter = 0;
29252
29253 /* InitializeConditions for UnitDelay: '<S3>/Unit_Delay' */
29254 L4_MABX_DW.Unit_Delay_79_DSTATE = L4_MABX_P.Unit_Delay_79_InitialCondition;
29255 L4_MABX_DW.Unit_Delay_80_DSTATE = L4_MABX_P.Unit_Delay_80_InitialCondition;
29256 L4_MABX_DW.Unit_Delay_81_DSTATE = L4_MABX_P.Unit_Delay_81_InitialCondition;
29257 L4_MABX_DW.Unit_Delay_45_DSTATE = L4_MABX_P.Unit_Delay_45_InitialCondition;
29258 L4_MABX_DW.Unit_Delay_47_DSTATE = L4_MABX_P.Unit_Delay_47_InitialCondition;
29259
29260 /* InitializeConditions for S-Function (dsa_tcpip_udp_sfcn): '<S387>/TCPIP_Com' */
29261 /* Level2 S-Function Block: '<S387>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
29262 {
29263 SimStruct *rts = L4_MABX_M->childSfunctions[4];
29264 sfcnInitializeConditions(rts);
29265 if (ssGetErrorStatus(rts) != (NULL))
29266 return;
29267 }
29268
29269 /* InitializeConditions for UnitDelay: '<S391>/Delay Input1' */
29270 L4_MABX_DW.DelayInput1_DSTATE_p = L4_MABX_P.DetectRisePositive1_vinit;
29271
29272 /* InitializeConditions for UnitDelay: '<S389>/Unit Delay' */
29273 L4_MABX_DW.UnitDelay_DSTATE = L4_MABX_P.UnitDelay_InitialCondition_h;
29274
29275 /* InitializeConditions for UnitDelay: '<S825>/Unit Delay2' */
29276 L4_MABX_DW.UnitDelay2_DSTATE = L4_MABX_P.UnitDelay2_InitialCondition;
29277
29278 /* InitializeConditions for UnitDelay: '<S825>/Unit Delay1' */
29279 L4_MABX_DW.UnitDelay1_DSTATE_o = L4_MABX_P.UnitDelay1_InitialCondition_o;
29280
29281 /* InitializeConditions for UnitDelay: '<S825>/Unit Delay3' */
29282 L4_MABX_DW.UnitDelay3_DSTATE = L4_MABX_P.UnitDelay3_InitialCondition;
29283
29284 /* InitializeConditions for RateTransition: '<S1044>/TmpRTBAtANDInport1' */
29285 L4_MABX_DW.TmpRTBAtANDInport1_Buffer0 =
29286 L4_MABX_P.TmpRTBAtANDInport1_InitialCondi;
29287
29288 /* InitializeConditions for DiscretePulseGenerator: '<S1044>/Flash' */
29289 L4_MABX_DW.clockTickCounter_j = 0;
29290
29291 /* InitializeConditions for UnitDelay: '<S3>/Unit_Delay' */
29292 L4_MABX_DW.Unit_Delay_1_DSTATE = L4_MABX_P.Unit_Delay_1_InitialCondition_f;
29293 L4_MABX_DW.Unit_Delay_10_DSTATE = L4_MABX_P.Unit_Delay_10_InitialCondition;
29294 L4_MABX_DW.Unit_Delay_100_DSTATE = L4_MABX_P.Unit_Delay_100_InitialCondition;
29295 L4_MABX_DW.Unit_Delay_101_DSTATE = L4_MABX_P.Unit_Delay_101_InitialCondition;
29296 L4_MABX_DW.Unit_Delay_102_DSTATE = L4_MABX_P.Unit_Delay_102_InitialCondition;
29297 L4_MABX_DW.Unit_Delay_103_DSTATE = L4_MABX_P.Unit_Delay_103_InitialCondition;
29298 L4_MABX_DW.Unit_Delay_104_DSTATE = L4_MABX_P.Unit_Delay_104_InitialCondition;
29299 L4_MABX_DW.Unit_Delay_105_DSTATE = L4_MABX_P.Unit_Delay_105_InitialCondition;
29300 L4_MABX_DW.Unit_Delay_106_DSTATE = L4_MABX_P.Unit_Delay_106_InitialCondition;
29301 L4_MABX_DW.Unit_Delay_107_DSTATE = L4_MABX_P.Unit_Delay_107_InitialCondition;
29302 L4_MABX_DW.Unit_Delay_108_DSTATE = L4_MABX_P.Unit_Delay_108_InitialCondition;
29303 L4_MABX_DW.Unit_Delay_109_DSTATE = L4_MABX_P.Unit_Delay_109_InitialCondition;
29304 L4_MABX_DW.Unit_Delay_11_DSTATE = L4_MABX_P.Unit_Delay_11_InitialCondition;
29305 L4_MABX_DW.Unit_Delay_110_DSTATE = L4_MABX_P.Unit_Delay_110_InitialCondition;
29306 L4_MABX_DW.Unit_Delay_111_DSTATE = L4_MABX_P.Unit_Delay_111_InitialCondition;
29307 L4_MABX_DW.Unit_Delay_112_DSTATE = L4_MABX_P.Unit_Delay_112_InitialCondition;
29308 L4_MABX_DW.Unit_Delay_113_DSTATE = L4_MABX_P.Unit_Delay_113_InitialCondition;
29309 L4_MABX_DW.Unit_Delay_114_DSTATE = L4_MABX_P.Unit_Delay_114_InitialCondition;
29310 L4_MABX_DW.Unit_Delay_115_DSTATE = L4_MABX_P.Unit_Delay_115_InitialCondition;
29311 L4_MABX_DW.Unit_Delay_116_DSTATE = L4_MABX_P.Unit_Delay_116_InitialCondition;
29312 L4_MABX_DW.Unit_Delay_117_DSTATE = L4_MABX_P.Unit_Delay_117_InitialCondition;
29313 L4_MABX_DW.Unit_Delay_118_DSTATE = L4_MABX_P.Unit_Delay_118_InitialCondition;
29314 L4_MABX_DW.Unit_Delay_119_DSTATE = L4_MABX_P.Unit_Delay_119_InitialCondition;
29315 L4_MABX_DW.Unit_Delay_12_DSTATE = L4_MABX_P.Unit_Delay_12_InitialCondition;
29316 L4_MABX_DW.Unit_Delay_120_DSTATE = L4_MABX_P.Unit_Delay_120_InitialCondition;
29317 L4_MABX_DW.Unit_Delay_121_DSTATE = L4_MABX_P.Unit_Delay_121_InitialCondition;
29318 L4_MABX_DW.Unit_Delay_122_DSTATE = L4_MABX_P.Unit_Delay_122_InitialCondition;
29319 L4_MABX_DW.Unit_Delay_123_DSTATE = L4_MABX_P.Unit_Delay_123_InitialCondition;
29320 L4_MABX_DW.Unit_Delay_124_DSTATE = L4_MABX_P.Unit_Delay_124_InitialCondition;
29321 L4_MABX_DW.Unit_Delay_125_DSTATE = L4_MABX_P.Unit_Delay_125_InitialCondition;
29322 L4_MABX_DW.Unit_Delay_126_DSTATE = L4_MABX_P.Unit_Delay_126_InitialCondition;
29323 L4_MABX_DW.Unit_Delay_127_DSTATE = L4_MABX_P.Unit_Delay_127_InitialCondition;
29324 L4_MABX_DW.Unit_Delay_128_DSTATE = L4_MABX_P.Unit_Delay_128_InitialCondition;
29325 L4_MABX_DW.Unit_Delay_129_DSTATE = L4_MABX_P.Unit_Delay_129_InitialCondition;
29326 L4_MABX_DW.Unit_Delay_13_DSTATE = L4_MABX_P.Unit_Delay_13_InitialCondition;
29327 L4_MABX_DW.Unit_Delay_130_DSTATE = L4_MABX_P.Unit_Delay_130_InitialCondition;
29328 L4_MABX_DW.Unit_Delay_131_DSTATE = L4_MABX_P.Unit_Delay_131_InitialCondition;
29329 L4_MABX_DW.Unit_Delay_132_DSTATE = L4_MABX_P.Unit_Delay_132_InitialCondition;
29330 L4_MABX_DW.Unit_Delay_133_DSTATE = L4_MABX_P.Unit_Delay_133_InitialCondition;
29331 L4_MABX_DW.Unit_Delay_134_DSTATE = L4_MABX_P.Unit_Delay_134_InitialCondition;
29332 L4_MABX_DW.Unit_Delay_135_DSTATE = L4_MABX_P.Unit_Delay_135_InitialCondition;
29333 L4_MABX_DW.Unit_Delay_136_DSTATE = L4_MABX_P.Unit_Delay_136_InitialCondition;
29334 L4_MABX_DW.Unit_Delay_137_DSTATE = L4_MABX_P.Unit_Delay_137_InitialCondition;
29335 L4_MABX_DW.Unit_Delay_138_DSTATE = L4_MABX_P.Unit_Delay_138_InitialCondition;
29336 L4_MABX_DW.Unit_Delay_139_DSTATE = L4_MABX_P.Unit_Delay_139_InitialCondition;
29337 L4_MABX_DW.Unit_Delay_14_DSTATE = L4_MABX_P.Unit_Delay_14_InitialCondition;
29338 L4_MABX_DW.Unit_Delay_140_DSTATE = L4_MABX_P.Unit_Delay_140_InitialCondition;
29339 L4_MABX_DW.Unit_Delay_141_DSTATE = L4_MABX_P.Unit_Delay_141_InitialCondition;
29340 L4_MABX_DW.Unit_Delay_15_DSTATE = L4_MABX_P.Unit_Delay_15_InitialCondition;
29341 L4_MABX_DW.Unit_Delay_16_DSTATE = L4_MABX_P.Unit_Delay_16_InitialCondition;
29342 L4_MABX_DW.Unit_Delay_17_DSTATE = L4_MABX_P.Unit_Delay_17_InitialCondition;
29343 L4_MABX_DW.Unit_Delay_18_DSTATE = L4_MABX_P.Unit_Delay_18_InitialCondition;
29344 L4_MABX_DW.Unit_Delay_19_DSTATE = L4_MABX_P.Unit_Delay_19_InitialCondition;
29345 L4_MABX_DW.Unit_Delay_2_DSTATE = L4_MABX_P.Unit_Delay_2_InitialCondition_f;
29346 L4_MABX_DW.Unit_Delay_20_DSTATE = L4_MABX_P.Unit_Delay_20_InitialCondition;
29347 L4_MABX_DW.Unit_Delay_21_DSTATE = L4_MABX_P.Unit_Delay_21_InitialCondition;
29348 L4_MABX_DW.Unit_Delay_22_DSTATE = L4_MABX_P.Unit_Delay_22_InitialCondition;
29349 L4_MABX_DW.Unit_Delay_23_DSTATE = L4_MABX_P.Unit_Delay_23_InitialCondition;
29350 L4_MABX_DW.Unit_Delay_24_DSTATE = L4_MABX_P.Unit_Delay_24_InitialCondition;
29351 L4_MABX_DW.Unit_Delay_25_DSTATE = L4_MABX_P.Unit_Delay_25_InitialCondition;
29352 L4_MABX_DW.Unit_Delay_26_DSTATE = L4_MABX_P.Unit_Delay_26_InitialCondition;
29353 L4_MABX_DW.Unit_Delay_27_DSTATE = L4_MABX_P.Unit_Delay_27_InitialCondition;
29354 L4_MABX_DW.Unit_Delay_28_DSTATE = L4_MABX_P.Unit_Delay_28_InitialCondition;
29355 L4_MABX_DW.Unit_Delay_29_DSTATE = L4_MABX_P.Unit_Delay_29_InitialCondition;
29356 L4_MABX_DW.Unit_Delay_3_DSTATE = L4_MABX_P.Unit_Delay_3_InitialCondition_f;
29357 L4_MABX_DW.Unit_Delay_30_DSTATE = L4_MABX_P.Unit_Delay_30_InitialCondition;
29358 L4_MABX_DW.Unit_Delay_31_DSTATE = L4_MABX_P.Unit_Delay_31_InitialCondition;
29359 L4_MABX_DW.Unit_Delay_32_DSTATE = L4_MABX_P.Unit_Delay_32_InitialCondition;
29360 L4_MABX_DW.Unit_Delay_33_DSTATE = L4_MABX_P.Unit_Delay_33_InitialCondition;
29361 L4_MABX_DW.Unit_Delay_34_DSTATE = L4_MABX_P.Unit_Delay_34_InitialCondition;
29362 L4_MABX_DW.Unit_Delay_35_DSTATE = L4_MABX_P.Unit_Delay_35_InitialCondition;
29363 L4_MABX_DW.Unit_Delay_36_DSTATE = L4_MABX_P.Unit_Delay_36_InitialCondition;
29364 L4_MABX_DW.Unit_Delay_37_DSTATE = L4_MABX_P.Unit_Delay_37_InitialCondition;
29365 L4_MABX_DW.Unit_Delay_38_DSTATE = L4_MABX_P.Unit_Delay_38_InitialCondition;
29366 L4_MABX_DW.Unit_Delay_39_DSTATE = L4_MABX_P.Unit_Delay_39_InitialCondition;
29367 L4_MABX_DW.Unit_Delay_4_DSTATE = L4_MABX_P.Unit_Delay_4_InitialCondition;
29368 L4_MABX_DW.Unit_Delay_40_DSTATE = L4_MABX_P.Unit_Delay_40_InitialCondition;
29369 L4_MABX_DW.Unit_Delay_41_DSTATE = L4_MABX_P.Unit_Delay_41_InitialCondition;
29370 L4_MABX_DW.Unit_Delay_42_DSTATE = L4_MABX_P.Unit_Delay_42_InitialCondition;
29371 L4_MABX_DW.Unit_Delay_43_DSTATE = L4_MABX_P.Unit_Delay_43_InitialCondition;
29372 L4_MABX_DW.Unit_Delay_44_DSTATE = L4_MABX_P.Unit_Delay_44_InitialCondition;
29373 L4_MABX_DW.Unit_Delay_46_DSTATE = L4_MABX_P.Unit_Delay_46_InitialCondition;
29374 L4_MABX_DW.Unit_Delay_48_DSTATE = L4_MABX_P.Unit_Delay_48_InitialCondition;
29375 L4_MABX_DW.Unit_Delay_49_DSTATE = L4_MABX_P.Unit_Delay_49_InitialCondition;
29376 L4_MABX_DW.Unit_Delay_5_DSTATE = L4_MABX_P.Unit_Delay_5_InitialCondition;
29377 L4_MABX_DW.Unit_Delay_50_DSTATE = L4_MABX_P.Unit_Delay_50_InitialCondition;
29378 L4_MABX_DW.Unit_Delay_51_DSTATE = L4_MABX_P.Unit_Delay_51_InitialCondition;
29379 L4_MABX_DW.Unit_Delay_52_DSTATE = L4_MABX_P.Unit_Delay_52_InitialCondition;
29380 L4_MABX_DW.Unit_Delay_53_DSTATE = L4_MABX_P.Unit_Delay_53_InitialCondition;
29381 L4_MABX_DW.Unit_Delay_54_DSTATE = L4_MABX_P.Unit_Delay_54_InitialCondition;
29382 L4_MABX_DW.Unit_Delay_55_DSTATE = L4_MABX_P.Unit_Delay_55_InitialCondition;
29383 L4_MABX_DW.Unit_Delay_56_DSTATE = L4_MABX_P.Unit_Delay_56_InitialCondition;
29384 L4_MABX_DW.Unit_Delay_57_DSTATE = L4_MABX_P.Unit_Delay_57_InitialCondition;
29385 L4_MABX_DW.Unit_Delay_58_DSTATE = L4_MABX_P.Unit_Delay_58_InitialCondition;
29386 L4_MABX_DW.Unit_Delay_59_DSTATE = L4_MABX_P.Unit_Delay_59_InitialCondition;
29387 L4_MABX_DW.Unit_Delay_6_DSTATE = L4_MABX_P.Unit_Delay_6_InitialCondition;
29388 L4_MABX_DW.Unit_Delay_60_DSTATE = L4_MABX_P.Unit_Delay_60_InitialCondition;
29389 L4_MABX_DW.Unit_Delay_61_DSTATE = L4_MABX_P.Unit_Delay_61_InitialCondition;
29390 L4_MABX_DW.Unit_Delay_62_DSTATE = L4_MABX_P.Unit_Delay_62_InitialCondition;
29391 L4_MABX_DW.Unit_Delay_63_DSTATE = L4_MABX_P.Unit_Delay_63_InitialCondition;
29392 L4_MABX_DW.Unit_Delay_64_DSTATE = L4_MABX_P.Unit_Delay_64_InitialCondition;
29393 L4_MABX_DW.Unit_Delay_65_DSTATE = L4_MABX_P.Unit_Delay_65_InitialCondition;
29394 L4_MABX_DW.Unit_Delay_66_DSTATE = L4_MABX_P.Unit_Delay_66_InitialCondition;
29395 L4_MABX_DW.Unit_Delay_67_DSTATE = L4_MABX_P.Unit_Delay_67_InitialCondition;
29396 L4_MABX_DW.Unit_Delay_68_DSTATE = L4_MABX_P.Unit_Delay_68_InitialCondition;
29397 L4_MABX_DW.Unit_Delay_69_DSTATE = L4_MABX_P.Unit_Delay_69_InitialCondition;
29398 L4_MABX_DW.Unit_Delay_7_DSTATE = L4_MABX_P.Unit_Delay_7_InitialCondition;
29399 L4_MABX_DW.Unit_Delay_70_DSTATE = L4_MABX_P.Unit_Delay_70_InitialCondition;
29400 L4_MABX_DW.Unit_Delay_71_DSTATE = L4_MABX_P.Unit_Delay_71_InitialCondition;
29401 L4_MABX_DW.Unit_Delay_72_DSTATE = L4_MABX_P.Unit_Delay_72_InitialCondition;
29402 L4_MABX_DW.Unit_Delay_73_DSTATE = L4_MABX_P.Unit_Delay_73_InitialCondition;
29403 L4_MABX_DW.Unit_Delay_74_DSTATE = L4_MABX_P.Unit_Delay_74_InitialCondition;
29404 L4_MABX_DW.Unit_Delay_75_DSTATE = L4_MABX_P.Unit_Delay_75_InitialCondition;
29405 L4_MABX_DW.Unit_Delay_76_DSTATE = L4_MABX_P.Unit_Delay_76_InitialCondition;
29406 L4_MABX_DW.Unit_Delay_77_DSTATE = L4_MABX_P.Unit_Delay_77_InitialCondition;
29407 L4_MABX_DW.Unit_Delay_78_DSTATE = L4_MABX_P.Unit_Delay_78_InitialCondition;
29408 L4_MABX_DW.Unit_Delay_8_DSTATE = L4_MABX_P.Unit_Delay_8_InitialCondition;
29409 L4_MABX_DW.Unit_Delay_82_DSTATE = L4_MABX_P.Unit_Delay_82_InitialCondition;
29410 L4_MABX_DW.Unit_Delay_83_DSTATE = L4_MABX_P.Unit_Delay_83_InitialCondition;
29411 L4_MABX_DW.Unit_Delay_84_DSTATE = L4_MABX_P.Unit_Delay_84_InitialCondition;
29412 L4_MABX_DW.Unit_Delay_85_DSTATE = L4_MABX_P.Unit_Delay_85_InitialCondition;
29413 L4_MABX_DW.Unit_Delay_86_DSTATE = L4_MABX_P.Unit_Delay_86_InitialCondition;
29414 L4_MABX_DW.Unit_Delay_87_DSTATE = L4_MABX_P.Unit_Delay_87_InitialCondition;
29415 L4_MABX_DW.Unit_Delay_88_DSTATE = L4_MABX_P.Unit_Delay_88_InitialCondition;
29416 L4_MABX_DW.Unit_Delay_89_DSTATE = L4_MABX_P.Unit_Delay_89_InitialCondition;
29417 L4_MABX_DW.Unit_Delay_9_DSTATE = L4_MABX_P.Unit_Delay_9_InitialCondition;
29418 L4_MABX_DW.Unit_Delay_90_DSTATE = L4_MABX_P.Unit_Delay_90_InitialCondition;
29419 L4_MABX_DW.Unit_Delay_91_DSTATE = L4_MABX_P.Unit_Delay_91_InitialCondition;
29420 L4_MABX_DW.Unit_Delay_92_DSTATE = L4_MABX_P.Unit_Delay_92_InitialCondition;
29421 L4_MABX_DW.Unit_Delay_93_DSTATE = L4_MABX_P.Unit_Delay_93_InitialCondition;
29422 L4_MABX_DW.Unit_Delay_94_DSTATE = L4_MABX_P.Unit_Delay_94_InitialCondition;
29423 L4_MABX_DW.Unit_Delay_95_DSTATE = L4_MABX_P.Unit_Delay_95_InitialCondition;
29424 L4_MABX_DW.Unit_Delay_96_DSTATE = L4_MABX_P.Unit_Delay_96_InitialCondition;
29425 L4_MABX_DW.Unit_Delay_97_DSTATE = L4_MABX_P.Unit_Delay_97_InitialCondition;
29426 L4_MABX_DW.Unit_Delay_98_DSTATE = L4_MABX_P.Unit_Delay_98_InitialCondition;
29427 L4_MABX_DW.Unit_Delay_99_DSTATE = L4_MABX_P.Unit_Delay_99_InitialCondition;
29428
29429 /* InitializeConditions for UnitDelay: '<S635>/Unit_Delay2' */
29430 L4_MABX_DW.Unit_Delay2_DSTATE_o = L4_MABX_P.Unit_Delay2_InitialCondition_gn;
29431
29432 /* InitializeConditions for UnitDelay: '<S635>/Unit_Delay1' */
29433 L4_MABX_DW.Unit_Delay1_DSTATE_hq = L4_MABX_P.Unit_Delay1_InitialCondition_l;
29434
29435 /* InitializeConditions for UnitDelay: '<S642>/Unit_Delay' */
29436 L4_MABX_DW.Unit_Delay_DSTATE_n = L4_MABX_P.Unit_Delay_InitialCondition_ad;
29437
29438 /* InitializeConditions for UnitDelay: '<S10>/Unit_Delay' */
29439 L4_MABX_DW.Unit_Delay_DSTATE_do = L4_MABX_P.Unit_Delay_InitialCondition_jp;
29440
29441 /* SystemInitialize for Enabled SubSystem: '<S483>/AIR1' */
29442 /* SystemInitialize for Outport: '<S484>/PneumaticSupplyPress' */
29443 L4_MABX_B.SFunction1_o1_n4 = L4_MABX_P.PneumaticSupplyPress_Y0;
29444
29445 /* SystemInitialize for Outport: '<S484>/ParkingAnd_orTrailerAirPress' */
29446 L4_MABX_B.SFunction1_o2_p4 = L4_MABX_P.ParkingAnd_orTrailerAirPress_Y0;
29447
29448 /* SystemInitialize for Outport: '<S484>/ServiceBrakeCircuit1AirPress' */
29449 L4_MABX_B.SFunction1_o3_iv = L4_MABX_P.ServiceBrakeCircuit1AirPress_Y0;
29450
29451 /* SystemInitialize for Outport: '<S484>/ServiceBrakeCircuit2AirPress' */
29452 L4_MABX_B.SFunction1_o4_av = L4_MABX_P.ServiceBrakeCircuit2AirPress_Y0;
29453
29454 /* SystemInitialize for Outport: '<S484>/AuxEquipmentSupplyPress' */
29455 L4_MABX_B.SFunction1_o5_g = L4_MABX_P.AuxEquipmentSupplyPress_Y0;
29456
29457 /* SystemInitialize for Outport: '<S484>/AirSuspensionSupplyPress' */
29458 L4_MABX_B.SFunction1_o6_dp = L4_MABX_P.AirSuspensionSupplyPress_Y0;
29459
29460 /* SystemInitialize for Outport: '<S484>/AirCompressorStatus' */
29461 L4_MABX_B.SFunction1_o7_o = L4_MABX_P.AirCompressorStatus_Y0;
29462
29463 /* SystemInitialize for Outport: '<S484>/PowertrainCircuitAirSupplyPress' */
29464 L4_MABX_B.SFunction1_o8_nj = L4_MABX_P.PowertrainCircuitAirSupplyPress;
29465
29466 /* SystemInitialize for Outport: '<S484>/RX status' */
29467 L4_MABX_B.SFunction1_o9_ft = L4_MABX_P.RXstatus_Y0_m;
29468
29469 /* SystemInitialize for Outport: '<S484>/RX time' */
29470 L4_MABX_B.SFunction1_o10_fb = L4_MABX_P.RXtime_Y0_e;
29471
29472 /* SystemInitialize for Outport: '<S484>/RX delta time' */
29473 L4_MABX_B.SFunction1_o11_h = L4_MABX_P.RXdeltatime_Y0_k;
29474
29475 /* End of SystemInitialize for SubSystem: '<S483>/AIR1' */
29476
29477 /* SystemInitialize for Enabled SubSystem: '<S485>/AMB' */
29478 /* SystemInitialize for Outport: '<S486>/BarometricPress' */
29479 L4_MABX_B.SFunction1_o1_n = L4_MABX_P.BarometricPress_Y0;
29480
29481 /* SystemInitialize for Outport: '<S486>/CabInteriorTemp' */
29482 L4_MABX_B.SFunction1_o2_cz = L4_MABX_P.CabInteriorTemp_Y0;
29483
29484 /* SystemInitialize for Outport: '<S486>/AmbientAirTemp' */
29485 L4_MABX_B.SFunction1_o3_fv = L4_MABX_P.AmbientAirTemp_Y0;
29486
29487 /* SystemInitialize for Outport: '<S486>/EngAirIntakeTemp' */
29488 L4_MABX_B.SFunction1_o4_it = L4_MABX_P.EngAirIntakeTemp_Y0;
29489
29490 /* SystemInitialize for Outport: '<S486>/RoadSurfaceTemp' */
29491 L4_MABX_B.SFunction1_o5_h5 = L4_MABX_P.RoadSurfaceTemp_Y0;
29492
29493 /* SystemInitialize for Outport: '<S486>/RX status' */
29494 L4_MABX_B.SFunction1_o6_fk = L4_MABX_P.RXstatus_Y0_ku;
29495
29496 /* SystemInitialize for Outport: '<S486>/RX time' */
29497 L4_MABX_B.SFunction1_o7_kx = L4_MABX_P.RXtime_Y0_i;
29498
29499 /* SystemInitialize for Outport: '<S486>/RX delta time' */
29500 L4_MABX_B.SFunction1_o8_bj = L4_MABX_P.RXdeltatime_Y0_l;
29501
29502 /* End of SystemInitialize for SubSystem: '<S485>/AMB' */
29503
29504 /* SystemInitialize for Atomic SubSystem: '<S815>/CAN_TX_1000ms' */
29505 /* SystemInitialize for Enabled SubSystem: '<S835>/AIR1' */
29506 /* SystemInitialize for Outport: '<S836>/TX status' */
29507 L4_MABX_B.SFunction1_o1_a3 = L4_MABX_P.TXstatus_Y0;
29508
29509 /* SystemInitialize for Outport: '<S836>/TX time' */
29510 L4_MABX_B.SFunction1_o2_cq = L4_MABX_P.TXtime_Y0;
29511
29512 /* SystemInitialize for Outport: '<S836>/TX delta time' */
29513 L4_MABX_B.SFunction1_o3_ds = L4_MABX_P.TXdeltatime_Y0;
29514
29515 /* SystemInitialize for Outport: '<S836>/TX delay time' */
29516 L4_MABX_B.SFunction1_o4_f = L4_MABX_P.TXdelaytime_Y0;
29517
29518 /* End of SystemInitialize for SubSystem: '<S835>/AIR1' */
29519
29520 /* SystemInitialize for Enabled SubSystem: '<S843>/AMB' */
29521 /* SystemInitialize for Outport: '<S844>/TX status' */
29522 L4_MABX_B.SFunction1_o1_c4 = L4_MABX_P.TXstatus_Y0_i;
29523
29524 /* SystemInitialize for Outport: '<S844>/TX time' */
29525 L4_MABX_B.SFunction1_o2_nd = L4_MABX_P.TXtime_Y0_p;
29526
29527 /* SystemInitialize for Outport: '<S844>/TX delta time' */
29528 L4_MABX_B.SFunction1_o3_l = L4_MABX_P.TXdeltatime_Y0_i;
29529
29530 /* SystemInitialize for Outport: '<S844>/TX delay time' */
29531 L4_MABX_B.SFunction1_o4_l = L4_MABX_P.TXdelaytime_Y0_c;
29532
29533 /* End of SystemInitialize for SubSystem: '<S843>/AMB' */
29534 /* End of SystemInitialize for SubSystem: '<S815>/CAN_TX_1000ms' */
29535
29536 /* SystemInitialize for Chart: '<S811>/Chart' */
29537 L4_MABX_DW.is_active_c5_SUB_ECU_L4_MABX_HW = 0U;
29538 L4_MABX_DW.is_c5_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_ACTIVE_CHILD;
29539
29540 /* SystemInitialize for Chart: '<S729>/Health State Machine PWM Sensor 1' */
29541 L4_MABX_DW.is_FAILURE_DETECTED_g = L4_MABX_IN_NO_ACTIVE_CHILD;
29542 L4_MABX_DW.is_active_c9_SUB_ECU_L4_MABX_HW = 0U;
29543 L4_MABX_DW.is_c9_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_ACTIVE_CHILD;
29544
29545 /* SystemInitialize for Chart: '<S729>/Health State Machine PWM Sensor 2' */
29546 L4_MABX_DW.is_FAILURE_DETECTED = L4_MABX_IN_NO_ACTIVE_CHILD;
29547 L4_MABX_DW.is_active_c10_SUB_ECU_L4_MABX_H = 0U;
29548 L4_MABX_DW.is_c10_SUB_ECU_L4_MABX_HW_Inter = L4_MABX_IN_NO_ACTIVE_CHILD;
29549
29550 /* SystemInitialize for Enabled SubSystem: '<S726>/Slew_at_event' */
29551 /* InitializeConditions for UnitDelay: '<S804>/Unit_Delay' */
29552 L4_MABX_DW.Unit_Delay_DSTATE_eb = L4_MABX_P.Unit_Delay_InitialCondition_aw;
29553
29554 /* InitializeConditions for UnitDelay: '<S805>/Unit_Delay' */
29555 L4_MABX_DW.Unit_Delay_DSTATE_mm = L4_MABX_P.Unit_Delay_InitialCondition_n;
29556
29557 /* InitializeConditions for UnitDelay: '<S808>/FixPt Unit Delay2' */
29558 L4_MABX_DW.FixPtUnitDelay2_DSTATE_l =
29559 L4_MABX_P.FixPtUnitDelay2_InitialCondi_pa;
29560
29561 /* InitializeConditions for UnitDelay: '<S808>/FixPt Unit Delay1' */
29562 L4_MABX_DW.FixPtUnitDelay1_DSTATE_l =
29563 L4_MABX_P.FixPtUnitDelay1_InitialCondi_hw;
29564
29565 /* InitializeConditions for UnitDelay: '<S803>/Unit_Delay' */
29566 L4_MABX_DW.Unit_Delay_DSTATE_pn = L4_MABX_P.Unit_Delay_InitialCondition_nn;
29567
29568 /* SystemInitialize for Outport: '<S733>/F_Out_slewing' */
29569 L4_MABX_B.LogicalOperator_jl = L4_MABX_P.F_Out_slewing_Y0_h;
29570
29571 /* SystemInitialize for Outport: '<S733>/Out' */
29572 L4_MABX_B.If_Then_Else_ee.Switch = L4_MABX_P.Out_Y0_a;
29573
29574 /* End of SystemInitialize for SubSystem: '<S726>/Slew_at_event' */
29575
29576 /* SystemInitialize for Enabled SubSystem: '<S493>/CCVS1_31' */
29577 /* SystemInitialize for Outport: '<S494>/TwoSpeedAxleSwitch' */
29578 L4_MABX_B.SFunction1_o1_dq = L4_MABX_P.TwoSpeedAxleSwitch_Y0_k;
29579
29580 /* SystemInitialize for Outport: '<S494>/ParkingBrakeSwitch' */
29581 L4_MABX_B.SFunction1_o2_om = L4_MABX_P.ParkingBrakeSwitch_Y0_g;
29582
29583 /* SystemInitialize for Outport: '<S494>/CruiseCtrlPauseSwitch' */
29584 L4_MABX_B.SFunction1_o3_mjk = L4_MABX_P.CruiseCtrlPauseSwitch_Y0_i;
29585
29586 /* SystemInitialize for Outport: '<S494>/ParkBrakeReleaseInhibitRq' */
29587 L4_MABX_B.SFunction1_o4_pt = L4_MABX_P.ParkBrakeReleaseInhibitRq_Y0_b;
29588
29589 /* SystemInitialize for Outport: '<S494>/WheelBasedVehicleSpeed' */
29590 L4_MABX_B.SFunction1_o5_k2 = L4_MABX_P.WheelBasedVehicleSpeed_Y0_l;
29591
29592 /* SystemInitialize for Outport: '<S494>/CruiseCtrlActive' */
29593 L4_MABX_B.SFunction1_o6_fd = L4_MABX_P.CruiseCtrlActive_Y0_h;
29594
29595 /* SystemInitialize for Outport: '<S494>/CruiseCtrlEnableSwitch' */
29596 L4_MABX_B.SFunction1_o7_fa = L4_MABX_P.CruiseCtrlEnableSwitch_Y0_l;
29597
29598 /* SystemInitialize for Outport: '<S494>/BrakeSwitch' */
29599 L4_MABX_B.SFunction1_o8_g5 = L4_MABX_P.BrakeSwitch_Y0_b;
29600
29601 /* SystemInitialize for Outport: '<S494>/ClutchSwitch' */
29602 L4_MABX_B.SFunction1_o9_c0 = L4_MABX_P.ClutchSwitch_Y0_b;
29603
29604 /* SystemInitialize for Outport: '<S494>/CruiseCtrlSetSwitch' */
29605 L4_MABX_B.SFunction1_o10_m = L4_MABX_P.CruiseCtrlSetSwitch_Y0_h;
29606
29607 /* SystemInitialize for Outport: '<S494>/CruiseCtrlCoastSwitch' */
29608 L4_MABX_B.SFunction1_o11_ai = L4_MABX_P.CruiseCtrlCoastSwitch_Y0_n;
29609
29610 /* SystemInitialize for Outport: '<S494>/CruiseCtrlResumeSwitch' */
29611 L4_MABX_B.SFunction1_o12_e = L4_MABX_P.CruiseCtrlResumeSwitch_Y0_e;
29612
29613 /* SystemInitialize for Outport: '<S494>/CruiseCtrlAccelerateSwitch' */
29614 L4_MABX_B.SFunction1_o13_lf = L4_MABX_P.CruiseCtrlAccelerateSwitch_Y0_n;
29615
29616 /* SystemInitialize for Outport: '<S494>/CruiseCtrlSetSpeed' */
29617 L4_MABX_B.SFunction1_o14_f = L4_MABX_P.CruiseCtrlSetSpeed_Y0_b;
29618
29619 /* SystemInitialize for Outport: '<S494>/PTOGovernorState' */
29620 L4_MABX_B.SFunction1_o15_k = L4_MABX_P.PTOGovernorState_Y0_p;
29621
29622 /* SystemInitialize for Outport: '<S494>/CruiseCtrlStates' */
29623 L4_MABX_B.SFunction1_o16_h = L4_MABX_P.CruiseCtrlStates_Y0_f;
29624
29625 /* SystemInitialize for Outport: '<S494>/EngIdleIncrementSwitch' */
29626 L4_MABX_B.SFunction1_o17_h = L4_MABX_P.EngIdleIncrementSwitch_Y0_j;
29627
29628 /* SystemInitialize for Outport: '<S494>/EngIdleDecrementSwitch' */
29629 L4_MABX_B.SFunction1_o18_k = L4_MABX_P.EngIdleDecrementSwitch_Y0_b;
29630
29631 /* SystemInitialize for Outport: '<S494>/EngTestModeSwitch' */
29632 L4_MABX_B.SFunction1_o19_nj = L4_MABX_P.EngTestModeSwitch_Y0_k;
29633
29634 /* SystemInitialize for Outport: '<S494>/EngShutdownOverrideSwitch' */
29635 L4_MABX_B.SFunction1_o20_l = L4_MABX_P.EngShutdownOverrideSwitch_Y0_g;
29636
29637 /* SystemInitialize for Outport: '<S494>/RX status' */
29638 L4_MABX_B.SFunction1_o21_d = L4_MABX_P.RXstatus_Y0_f;
29639
29640 /* SystemInitialize for Outport: '<S494>/RX time' */
29641 L4_MABX_B.SFunction1_o22_l = L4_MABX_P.RXtime_Y0_c;
29642
29643 /* SystemInitialize for Outport: '<S494>/RX delta time' */
29644 L4_MABX_B.SFunction1_o23_k = L4_MABX_P.RXdeltatime_Y0_p;
29645
29646 /* End of SystemInitialize for SubSystem: '<S493>/CCVS1_31' */
29647
29648 /* SystemInitialize for Enabled SubSystem: '<S504>/EBC2_0B1' */
29649 /* SystemInitialize for Outport: '<S505>/FrontAxleSpeed' */
29650 L4_MABX_B.SFunction1_o1_in = L4_MABX_P.FrontAxleSpeed_Y0;
29651
29652 /* SystemInitialize for Outport: '<S505>/RelativeSpeedFrontAxleLeftWheel' */
29653 L4_MABX_B.SFunction1_o2_be = L4_MABX_P.RelativeSpeedFrontAxleLeftWheel;
29654
29655 /* SystemInitialize for Outport: '<S505>/RlativeSpeedFrontAxleRightWheel' */
29656 L4_MABX_B.SFunction1_o3_lh = L4_MABX_P.RlativeSpeedFrontAxleRightWheel;
29657
29658 /* SystemInitialize for Outport: '<S505>/RelativeSpeedRearAxle1LeftWheel' */
29659 L4_MABX_B.SFunction1_o4_i2 = L4_MABX_P.RelativeSpeedRearAxle1LeftWheel;
29660
29661 /* SystemInitialize for Outport: '<S505>/RlativeSpeedRearAxle1RightWheel' */
29662 L4_MABX_B.SFunction1_o5_hh = L4_MABX_P.RlativeSpeedRearAxle1RightWheel;
29663
29664 /* SystemInitialize for Outport: '<S505>/RelativeSpeedRearAxle2LeftWheel' */
29665 L4_MABX_B.SFunction1_o6_p = L4_MABX_P.RelativeSpeedRearAxle2LeftWheel;
29666
29667 /* SystemInitialize for Outport: '<S505>/RlativeSpeedRearAxle2RightWheel' */
29668 L4_MABX_B.SFunction1_o7_ix = L4_MABX_P.RlativeSpeedRearAxle2RightWheel;
29669
29670 /* SystemInitialize for Outport: '<S505>/RX status' */
29671 L4_MABX_B.SFunction1_o8_ea = L4_MABX_P.RXstatus_Y0_a;
29672
29673 /* SystemInitialize for Outport: '<S505>/RX time' */
29674 L4_MABX_B.SFunction1_o9_i = L4_MABX_P.RXtime_Y0_m;
29675
29676 /* SystemInitialize for Outport: '<S505>/RX delta time' */
29677 L4_MABX_B.SFunction1_o10_j = L4_MABX_P.RXdeltatime_Y0_h;
29678
29679 /* End of SystemInitialize for SubSystem: '<S504>/EBC2_0B1' */
29680
29681 /* SystemInitialize for Enabled SubSystem: '<S562>/HRW_0B' */
29682 /* SystemInitialize for Outport: '<S563>/FrontAxleLeftWheelSpeed' */
29683 L4_MABX_B.SFunction1_o1_bn = L4_MABX_P.FrontAxleLeftWheelSpeed_Y0;
29684
29685 /* SystemInitialize for Outport: '<S563>/FrontAxleRightWheelSpeed' */
29686 L4_MABX_B.SFunction1_o2_nn = L4_MABX_P.FrontAxleRightWheelSpeed_Y0;
29687
29688 /* SystemInitialize for Outport: '<S563>/RearAxleLeftWheelSpeed' */
29689 L4_MABX_B.SFunction1_o3_ht = L4_MABX_P.RearAxleLeftWheelSpeed_Y0;
29690
29691 /* SystemInitialize for Outport: '<S563>/RearAxleRightWheelSpeed' */
29692 L4_MABX_B.SFunction1_o4_da = L4_MABX_P.RearAxleRightWheelSpeed_Y0;
29693
29694 /* SystemInitialize for Outport: '<S563>/RX status' */
29695 L4_MABX_B.SFunction1_o5_e = L4_MABX_P.RXstatus_Y0_d;
29696
29697 /* SystemInitialize for Outport: '<S563>/RX time' */
29698 L4_MABX_B.SFunction1_o6_f = L4_MABX_P.RXtime_Y0_mk;
29699
29700 /* SystemInitialize for Outport: '<S563>/RX delta time' */
29701 L4_MABX_B.SFunction1_o7_lj = L4_MABX_P.RXdeltatime_Y0_m;
29702
29703 /* End of SystemInitialize for SubSystem: '<S562>/HRW_0B' */
29704
29705 /* SystemInitialize for Enabled SubSystem: '<S502>/EBC1_0B' */
29706 /* SystemInitialize for Outport: '<S503>/ASREngCtrlActive' */
29707 L4_MABX_B.SFunction1_o1_br = L4_MABX_P.ASREngCtrlActive_Y0_l;
29708
29709 /* SystemInitialize for Outport: '<S503>/ASRBrakeCtrlActive' */
29710 L4_MABX_B.SFunction1_o2_ow = L4_MABX_P.ASRBrakeCtrlActive_Y0_e;
29711
29712 /* SystemInitialize for Outport: '<S503>/AntiLockBrakingActive' */
29713 L4_MABX_B.SFunction1_o3_nk = L4_MABX_P.AntiLockBrakingActive_Y0_j;
29714
29715 /* SystemInitialize for Outport: '<S503>/EBSBrakeSwitch' */
29716 L4_MABX_B.SFunction1_o4_o = L4_MABX_P.EBSBrakeSwitch_Y0_n;
29717
29718 /* SystemInitialize for Outport: '<S503>/BrakePedalPos' */
29719 L4_MABX_B.SFunction1_o5_jlz = L4_MABX_P.BrakePedalPos_Y0_e;
29720
29721 /* SystemInitialize for Outport: '<S503>/ABSOffroadSwitch' */
29722 L4_MABX_B.SFunction1_o6_ch = L4_MABX_P.ABSOffroadSwitch_Y0_l;
29723
29724 /* SystemInitialize for Outport: '<S503>/ASROffroadSwitch' */
29725 L4_MABX_B.SFunction1_o7_h = L4_MABX_P.ASROffroadSwitch_Y0_o;
29726
29727 /* SystemInitialize for Outport: '<S503>/ASRHillHolderSwitch' */
29728 L4_MABX_B.SFunction1_o8_b = L4_MABX_P.ASRHillHolderSwitch_Y0_n;
29729
29730 /* SystemInitialize for Outport: '<S503>/TractionCtrlOverrideSwitch' */
29731 L4_MABX_B.SFunction1_o9_n5 = L4_MABX_P.TractionCtrlOverrideSwitch_Y0_a;
29732
29733 /* SystemInitialize for Outport: '<S503>/AccelInterlockSwitch' */
29734 L4_MABX_B.SFunction1_o10_ai = L4_MABX_P.AccelInterlockSwitch_Y0_c;
29735
29736 /* SystemInitialize for Outport: '<S503>/EngDerateSwitch' */
29737 L4_MABX_B.SFunction1_o11_o = L4_MABX_P.EngDerateSwitch_Y0_f;
29738
29739 /* SystemInitialize for Outport: '<S503>/EngAuxShutdownSwitch' */
29740 L4_MABX_B.SFunction1_o12_c = L4_MABX_P.EngAuxShutdownSwitch_Y0_f;
29741
29742 /* SystemInitialize for Outport: '<S503>/RemoteAccelEnableSwitch' */
29743 L4_MABX_B.SFunction1_o13_b = L4_MABX_P.RemoteAccelEnableSwitch_Y0_p;
29744
29745 /* SystemInitialize for Outport: '<S503>/EngRetarderSelection' */
29746 L4_MABX_B.SFunction1_o14_n = L4_MABX_P.EngRetarderSelection_Y0_f;
29747
29748 /* SystemInitialize for Outport: '<S503>/ABSFullyOperational' */
29749 L4_MABX_B.SFunction1_o15_i = L4_MABX_P.ABSFullyOperational_Y0_n;
29750
29751 /* SystemInitialize for Outport: '<S503>/EBSRedWarningSignal' */
29752 L4_MABX_B.SFunction1_o16_c = L4_MABX_P.EBSRedWarningSignal_Y0_o;
29753
29754 /* SystemInitialize for Outport: '<S503>/ABS_EBSAmberWarningSignal' */
29755 L4_MABX_B.SFunction1_o17_mb = L4_MABX_P.ABS_EBSAmberWarningSignal_Y0_f;
29756
29757 /* SystemInitialize for Outport: '<S503>/ATC_ASRInformationSignal' */
29758 L4_MABX_B.SFunction1_o18_g = L4_MABX_P.ATC_ASRInformationSignal_Y0_o;
29759
29760 /* SystemInitialize for Outport: '<S503>/SrcAddrssOfCtrllngDvcFrBrkCntrl' */
29761 L4_MABX_B.SFunction1_o19_o = L4_MABX_P.SrcAddrssOfCtrllngDvcFrBrkCnt_a;
29762
29763 /* SystemInitialize for Outport: '<S503>/HaltBrakeSwitch' */
29764 L4_MABX_B.SFunction1_o20_b = L4_MABX_P.HaltBrakeSwitch_Y0_b;
29765
29766 /* SystemInitialize for Outport: '<S503>/TrailerABSStatus' */
29767 L4_MABX_B.SFunction1_o21_i = L4_MABX_P.TrailerABSStatus_Y0_b;
29768
29769 /* SystemInitialize for Outport: '<S503>/TrctrMntdTrilerABSWarningSignal' */
29770 L4_MABX_B.SFunction1_o22_c = L4_MABX_P.TrctrMntdTrilerABSWarningSign_l;
29771
29772 /* SystemInitialize for Outport: '<S503>/RX status' */
29773 L4_MABX_B.SFunction1_o23_e = L4_MABX_P.RXstatus_Y0_op;
29774
29775 /* SystemInitialize for Outport: '<S503>/RX time' */
29776 L4_MABX_B.SFunction1_o24_a = L4_MABX_P.RXtime_Y0_n;
29777
29778 /* SystemInitialize for Outport: '<S503>/RX delta time' */
29779 L4_MABX_B.SFunction1_o25_b = L4_MABX_P.RXdeltatime_Y0_iu;
29780
29781 /* End of SystemInitialize for SubSystem: '<S502>/EBC1_0B' */
29782
29783 /* SystemInitialize for Enabled SubSystem: '<S557>/ETC2_031' */
29784 /* SystemInitialize for Outport: '<S558>/SPN524_TransSelectedGear' */
29785 L4_MABX_B.SFunction1_o1_la = L4_MABX_P.SPN524_TransSelectedGear_Y0;
29786
29787 /* SystemInitialize for Outport: '<S558>/SPN526_TransActualGearRatio' */
29788 L4_MABX_B.SFunction1_o2_n5 = L4_MABX_P.SPN526_TransActualGearRatio_Y0;
29789
29790 /* SystemInitialize for Outport: '<S558>/SPN523_TransCurrentGear' */
29791 L4_MABX_B.SFunction1_o3_lc = L4_MABX_P.SPN523_TransCurrentGear_Y0;
29792
29793 /* SystemInitialize for Outport: '<S558>/RX status' */
29794 L4_MABX_B.SFunction1_o4_mn = L4_MABX_P.RXstatus_Y0_on;
29795
29796 /* SystemInitialize for Outport: '<S558>/RX time' */
29797 L4_MABX_B.SFunction1_o5_jl = L4_MABX_P.RXtime_Y0_il;
29798
29799 /* SystemInitialize for Outport: '<S558>/RX delta time' */
29800 L4_MABX_B.SFunction1_o6_c = L4_MABX_P.RXdeltatime_Y0_gg;
29801
29802 /* End of SystemInitialize for SubSystem: '<S557>/ETC2_031' */
29803
29804 /* SystemInitialize for Enabled SubSystem: '<S551>/EEC1_001' */
29805 /* SystemInitialize for Outport: '<S552>/EngTorqueMode' */
29806 L4_MABX_B.SFunction1_o1_gr = L4_MABX_P.EngTorqueMode_Y0;
29807
29808 /* SystemInitialize for Outport: '<S552>/ActlEngPrcntTrqueHighResolution' */
29809 L4_MABX_B.SFunction1_o2_b0 = L4_MABX_P.ActlEngPrcntTrqueHighResolution;
29810
29811 /* SystemInitialize for Outport: '<S552>/DriversDemandEngPercentTorque' */
29812 L4_MABX_B.SFunction1_o3_an = L4_MABX_P.DriversDemandEngPercentTorque_Y;
29813
29814 /* SystemInitialize for Outport: '<S552>/ActualEngPercentTorque' */
29815 L4_MABX_B.SFunction1_o4_k2 = L4_MABX_P.ActualEngPercentTorque_Y0;
29816
29817 /* SystemInitialize for Outport: '<S552>/EngSpeed' */
29818 L4_MABX_B.SFunction1_o5_f1 = L4_MABX_P.EngSpeed_Y0;
29819
29820 /* SystemInitialize for Outport: '<S552>/SrcAddrssOfCtrllngDvcFrEngCntrl' */
29821 L4_MABX_B.SFunction1_o6_kx = L4_MABX_P.SrcAddrssOfCtrllngDvcFrEngCntrl;
29822
29823 /* SystemInitialize for Outport: '<S552>/EngStarterMode' */
29824 L4_MABX_B.SFunction1_o7_f = L4_MABX_P.EngStarterMode_Y0;
29825
29826 /* SystemInitialize for Outport: '<S552>/EngDemandPercentTorque' */
29827 L4_MABX_B.SFunction1_o8_e = L4_MABX_P.EngDemandPercentTorque_Y0;
29828
29829 /* SystemInitialize for Outport: '<S552>/RX status' */
29830 L4_MABX_B.SFunction1_o9_f = L4_MABX_P.RXstatus_Y0_nn;
29831
29832 /* SystemInitialize for Outport: '<S552>/RX time' */
29833 L4_MABX_B.SFunction1_o10_l = L4_MABX_P.RXtime_Y0_ac;
29834
29835 /* SystemInitialize for Outport: '<S552>/RX delta time' */
29836 L4_MABX_B.SFunction1_o11_ah = L4_MABX_P.RXdeltatime_Y0_dl;
29837
29838 /* End of SystemInitialize for SubSystem: '<S551>/EEC1_001' */
29839
29840 /* SystemInitialize for Enabled SubSystem: '<S555>/EEC3_001' */
29841 /* SystemInitialize for Outport: '<S556>/SPN514_NominalFrictionPercentTorque' */
29842 L4_MABX_B.SFunction1_o1_do = L4_MABX_P.SPN514_NominalFrictionPercentTo;
29843
29844 /* SystemInitialize for Outport: '<S556>/SPN2978_EstEngParasiticLossesPercentTorque' */
29845 L4_MABX_B.SFunction1_o2_h0 = L4_MABX_P.SPN2978_EstEngParasiticLossesPe;
29846
29847 /* SystemInitialize for Outport: '<S556>/RX status' */
29848 L4_MABX_B.SFunction1_o3_jq = L4_MABX_P.RXstatus_Y0_l;
29849
29850 /* SystemInitialize for Outport: '<S556>/RX time' */
29851 L4_MABX_B.SFunction1_o4_if = L4_MABX_P.RXtime_Y0_io;
29852
29853 /* SystemInitialize for Outport: '<S556>/RX delta time' */
29854 L4_MABX_B.SFunction1_o5_n = L4_MABX_P.RXdeltatime_Y0_g;
29855
29856 /* End of SystemInitialize for SubSystem: '<S555>/EEC3_001' */
29857
29858 /* SystemInitialize for Enabled SubSystem: '<S498>/CVW_0B1' */
29859 /* SystemInitialize for Outport: '<S499>/SPN1760_GrossCombinationVehicleWeight' */
29860 L4_MABX_B.SFunction1_o1_ly = L4_MABX_P.SPN1760_GrossCombinationVehicle;
29861
29862 /* SystemInitialize for Outport: '<S499>/RX status' */
29863 L4_MABX_B.SFunction1_o2_kwd = L4_MABX_P.RXstatus_Y0_ka;
29864
29865 /* SystemInitialize for Outport: '<S499>/RX time' */
29866 L4_MABX_B.SFunction1_o3_lv = L4_MABX_P.RXtime_Y0_p;
29867
29868 /* SystemInitialize for Outport: '<S499>/RX delta time' */
29869 L4_MABX_B.SFunction1_o4_o1 = L4_MABX_P.RXdeltatime_Y0_e;
29870
29871 /* End of SystemInitialize for SubSystem: '<S498>/CVW_0B1' */
29872
29873 /* SystemInitialize for Enabled SubSystem: '<S479>/ACC1_2A_' */
29874 /* SystemInitialize for Outport: '<S480>/SpeedOfForwardVehicle' */
29875 L4_MABX_B.SFunction1_o1_du = L4_MABX_P.SpeedOfForwardVehicle_Y0;
29876
29877 /* SystemInitialize for Outport: '<S480>/DistanceToForwardVehicle' */
29878 L4_MABX_B.SFunction1_o2_kv = L4_MABX_P.DistanceToForwardVehicle_Y0;
29879
29880 /* SystemInitialize for Outport: '<S480>/AdaptiveCruiseCtrlSetSpeed' */
29881 L4_MABX_B.SFunction1_o3_bf = L4_MABX_P.AdaptiveCruiseCtrlSetSpeed_Y0;
29882
29883 /* SystemInitialize for Outport: '<S480>/AdaptiveCruiseCtrlMode' */
29884 L4_MABX_B.SFunction1_o4_fr = L4_MABX_P.AdaptiveCruiseCtrlMode_Y0;
29885
29886 /* SystemInitialize for Outport: '<S480>/AdptveCruiseCtrlSetDistanceMode' */
29887 L4_MABX_B.SFunction1_o5_jg = L4_MABX_P.AdptveCruiseCtrlSetDistanceMode;
29888
29889 /* SystemInitialize for Outport: '<S480>/RoadCurvature' */
29890 L4_MABX_B.SFunction1_o6_fw = L4_MABX_P.RoadCurvature_Y0;
29891
29892 /* SystemInitialize for Outport: '<S480>/ACCTargetDetected' */
29893 L4_MABX_B.SFunction1_o7_p = L4_MABX_P.ACCTargetDetected_Y0;
29894
29895 /* SystemInitialize for Outport: '<S480>/ACCSystemShutoffWarning' */
29896 L4_MABX_B.SFunction1_o8_gw = L4_MABX_P.ACCSystemShutoffWarning_Y0;
29897
29898 /* SystemInitialize for Outport: '<S480>/ACCDistanceAlertSignal' */
29899 L4_MABX_B.SFunction1_o9_k = L4_MABX_P.ACCDistanceAlertSignal_Y0;
29900
29901 /* SystemInitialize for Outport: '<S480>/ForwardCollisionWarning' */
29902 L4_MABX_B.SFunction1_o10_j4 = L4_MABX_P.ForwardCollisionWarning_Y0;
29903
29904 /* SystemInitialize for Outport: '<S480>/RX status' */
29905 L4_MABX_B.SFunction1_o11_hg = L4_MABX_P.RXstatus_Y0_k;
29906
29907 /* SystemInitialize for Outport: '<S480>/RX time' */
29908 L4_MABX_B.SFunction1_o12_b = L4_MABX_P.RXtime_Y0_g;
29909
29910 /* SystemInitialize for Outport: '<S480>/RX delta time' */
29911 L4_MABX_B.SFunction1_o13_e = L4_MABX_P.RXdeltatime_Y0_i;
29912
29913 /* End of SystemInitialize for SubSystem: '<S479>/ACC1_2A_' */
29914
29915 /* SystemInitialize for Enabled SubSystem: '<S461>/CAN_TYPE1_RX_M1_C1' */
29916 /* SystemInitialize for Outport: '<S463>/byte1' */
29917 L4_MABX_B.SFunction1_o1_bs = L4_MABX_P.byte1_Y0;
29918
29919 /* SystemInitialize for Outport: '<S463>/byte2' */
29920 L4_MABX_B.SFunction1_o2_ao = L4_MABX_P.byte2_Y0;
29921
29922 /* SystemInitialize for Outport: '<S463>/byte3' */
29923 L4_MABX_B.SFunction1_o3_id = L4_MABX_P.byte3_Y0;
29924
29925 /* SystemInitialize for Outport: '<S463>/byte4' */
29926 L4_MABX_B.SFunction1_o4_d0 = L4_MABX_P.byte4_Y0;
29927
29928 /* SystemInitialize for Outport: '<S463>/byte5' */
29929 L4_MABX_B.SFunction1_o5_nc = L4_MABX_P.byte5_Y0;
29930
29931 /* SystemInitialize for Outport: '<S463>/byte6' */
29932 L4_MABX_B.SFunction1_o6_h = L4_MABX_P.byte6_Y0;
29933
29934 /* SystemInitialize for Outport: '<S463>/byte7' */
29935 L4_MABX_B.SFunction1_o7_nd = L4_MABX_P.byte7_Y0;
29936
29937 /* SystemInitialize for Outport: '<S463>/byte8' */
29938 L4_MABX_B.SFunction1_o8_gj = L4_MABX_P.byte8_Y0;
29939
29940 /* SystemInitialize for Outport: '<S463>/RX status' */
29941 L4_MABX_B.SFunction1_o9_e1 = L4_MABX_P.RXstatus_Y0;
29942
29943 /* SystemInitialize for Outport: '<S463>/RX time' */
29944 L4_MABX_B.SFunction1_o10_n = L4_MABX_P.RXtime_Y0;
29945
29946 /* SystemInitialize for Outport: '<S463>/RX delta time' */
29947 L4_MABX_B.SFunction1_o11_pr = L4_MABX_P.RXdeltatime_Y0;
29948
29949 /* End of SystemInitialize for SubSystem: '<S461>/CAN_TYPE1_RX_M1_C1' */
29950
29951 /* SystemInitialize for Enabled SubSystem: '<S455>/Decode_TPCM_BAM' */
29952 /* SystemInitialize for Outport: '<S673>/Out' */
29953 L4_MABX_B.SPN2556_ControlByte_l = (uint8_T)L4_MABX_P.Out_Y0_d;
29954 L4_MABX_B.DataType_af = (uint16_T)L4_MABX_P.Out_Y0_d;
29955 L4_MABX_B.SPN2568_TotalNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_d;
29956 L4_MABX_B.DataType_om = (uint32_T)L4_MABX_P.Out_Y0_d;
29957
29958 /* End of SystemInitialize for SubSystem: '<S455>/Decode_TPCM_BAM' */
29959
29960 /* SystemInitialize for Enabled SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' */
29961 /* SystemInitialize for Outport: '<S472>/byte1' */
29962 L4_MABX_B.SFunction1_o1_os = L4_MABX_P.byte1_Y0_c;
29963
29964 /* SystemInitialize for Outport: '<S472>/byte2' */
29965 L4_MABX_B.SFunction1_o2_iaz = L4_MABX_P.byte2_Y0_e;
29966
29967 /* SystemInitialize for Outport: '<S472>/byte3' */
29968 L4_MABX_B.SFunction1_o3_h5 = L4_MABX_P.byte3_Y0_g;
29969
29970 /* SystemInitialize for Outport: '<S472>/byte4' */
29971 L4_MABX_B.SFunction1_o4_fi = L4_MABX_P.byte4_Y0_l;
29972
29973 /* SystemInitialize for Outport: '<S472>/byte5' */
29974 L4_MABX_B.SFunction1_o5_jm = L4_MABX_P.byte5_Y0_c;
29975
29976 /* SystemInitialize for Outport: '<S472>/byte6' */
29977 L4_MABX_B.SFunction1_o6_mp = L4_MABX_P.byte6_Y0_n;
29978
29979 /* SystemInitialize for Outport: '<S472>/byte7' */
29980 L4_MABX_B.SFunction1_o7_b3 = L4_MABX_P.byte7_Y0_l;
29981
29982 /* SystemInitialize for Outport: '<S472>/byte8' */
29983 L4_MABX_B.SFunction1_o8_fc = L4_MABX_P.byte8_Y0_j;
29984
29985 /* SystemInitialize for Outport: '<S472>/RX status' */
29986 L4_MABX_B.SFunction1_o9_ms = L4_MABX_P.RXstatus_Y0_g;
29987
29988 /* SystemInitialize for Outport: '<S472>/RX time' */
29989 L4_MABX_B.SFunction1_o10_o = L4_MABX_P.RXtime_Y0_a;
29990
29991 /* SystemInitialize for Outport: '<S472>/RX delta time' */
29992 L4_MABX_B.SFunction1_o11_p = L4_MABX_P.RXdeltatime_Y0_o;
29993
29994 /* End of SystemInitialize for SubSystem: '<S470>/CAN_TYPE1_RX_M1_C1' */
29995
29996 /* SystemInitialize for S-Function (rti_commonblock): '<S814>/S-Function1' incorporates:
29997 * SubSystem: '<S403>/IncrementTimer'
29998 */
29999 L4_MABX_IncrementTimer_Init();
30000
30001 /* End of SystemInitialize for S-Function (rti_commonblock): '<S814>/S-Function1' */
30002
30003 /* SystemInitialize for Enabled SubSystem: '<S422>/CAN_RX_EC1_00' */
30004 /* SystemInitialize for Enabled SubSystem: '<S506>/Decode' */
30005 /* InitializeConditions for UnitDelay: '<S509>/Unit_Delay' */
30006 L4_MABX_DW.Unit_Delay_DSTATE_k = L4_MABX_P.Unit_Delay_InitialCondition_k5;
30007 for (i = 0; i < 39; i++) {
30008 /* InitializeConditions for UnitDelay: '<S506>/Unit Delay' */
30009 L4_MABX_DW.UnitDelay_DSTATE_hw[i] =
30010 L4_MABX_P.UnitDelay_InitialCondition_cm[i];
30011
30012 /* SystemInitialize for Outport: '<S509>/RawData' */
30013 L4_MABX_B.Inport_k[i] = L4_MABX_P.RawData_Y0;
30014 }
30015
30016 /* SystemInitialize for Outport: '<S509>/RX_time' */
30017 L4_MABX_B.timeStamp_b = L4_MABX_P.RX_time_Y0;
30018
30019 /* SystemInitialize for Outport: '<S509>/RX_delta_time' */
30020 L4_MABX_B.Subtract_e = L4_MABX_P.RX_delta_time_Y0;
30021
30022 /* End of SystemInitialize for SubSystem: '<S506>/Decode' */
30023
30024 /* SystemInitialize for Outport: '<S506>/RX_status' */
30025 L4_MABX_B.RX_status_l = L4_MABX_P.RX_status_Y0;
30026
30027 /* End of SystemInitialize for SubSystem: '<S422>/CAN_RX_EC1_00' */
30028
30029 /* SystemInitialize for Enabled SubSystem: '<S628>/VDC1_0B_' */
30030 /* SystemInitialize for Outport: '<S629>/VDCInformationSignal' */
30031 L4_MABX_B.SFunction1_o1_jf = L4_MABX_P.VDCInformationSignal_Y0;
30032
30033 /* SystemInitialize for Outport: '<S629>/VDCFullyOperational' */
30034 L4_MABX_B.SFunction1_o2_ih = L4_MABX_P.VDCFullyOperational_Y0;
30035
30036 /* SystemInitialize for Outport: '<S629>/VDCBrakeLightRq' */
30037 L4_MABX_B.SFunction1_o3_b = L4_MABX_P.VDCBrakeLightRq_Y0;
30038
30039 /* SystemInitialize for Outport: '<S629>/ROPEngCtrlActive' */
30040 L4_MABX_B.SFunction1_o4_gk = L4_MABX_P.ROPEngCtrlActive_Y0;
30041
30042 /* SystemInitialize for Outport: '<S629>/ROPBrakeCtrlActive' */
30043 L4_MABX_B.SFunction1_o5_a = L4_MABX_P.ROPBrakeCtrlActive_Y0;
30044
30045 /* SystemInitialize for Outport: '<S629>/YCEngCtrlActive' */
30046 L4_MABX_B.SFunction1_o6_g = L4_MABX_P.YCEngCtrlActive_Y0;
30047
30048 /* SystemInitialize for Outport: '<S629>/YCBrakeCtrlActive' */
30049 L4_MABX_B.SFunction1_o7_g = L4_MABX_P.YCBrakeCtrlActive_Y0;
30050
30051 /* SystemInitialize for Outport: '<S629>/RX status' */
30052 L4_MABX_B.SFunction1_o8_i = L4_MABX_P.RXstatus_Y0_oq;
30053
30054 /* SystemInitialize for Outport: '<S629>/RX time' */
30055 L4_MABX_B.SFunction1_o9_e = L4_MABX_P.RXtime_Y0_am;
30056
30057 /* SystemInitialize for Outport: '<S629>/RX delta time' */
30058 L4_MABX_B.SFunction1_o10 = L4_MABX_P.RXdeltatime_Y0_fp;
30059
30060 /* End of SystemInitialize for SubSystem: '<S628>/VDC1_0B_' */
30061
30062 /* SystemInitialize for Enabled SubSystem: '<S630>/VDC2_0B1' */
30063 /* SystemInitialize for Outport: '<S631>/SteerWheelAngle' */
30064 SteerWheelAngle = L4_MABX_P.SteerWheelAngle_Y0;
30065
30066 /* SystemInitialize for Outport: '<S631>/SteerWheelTurnCounter' */
30067 L4_MABX_B.SFunction1_o2_pd = L4_MABX_P.SteerWheelTurnCounter_Y0;
30068
30069 /* SystemInitialize for Outport: '<S631>/SteerWheelAngleSensorType' */
30070 L4_MABX_B.SFunction1_o3_ig = L4_MABX_P.SteerWheelAngleSensorType_Y0;
30071
30072 /* SystemInitialize for Outport: '<S631>/YawRate' */
30073 YawRate = L4_MABX_P.YawRate_Y0;
30074
30075 /* SystemInitialize for Outport: '<S631>/LateralAcceleration' */
30076 L4_MABX_B.SFunction1_o5_m = L4_MABX_P.LateralAcceleration_Y0;
30077
30078 /* SystemInitialize for Outport: '<S631>/LongitudinalAcceleration' */
30079 SPN1810_LongitudinalAcceleration = L4_MABX_P.LongitudinalAcceleration_Y0;
30080
30081 /* SystemInitialize for Outport: '<S631>/RX status' */
30082 L4_MABX_B.SFunction1_o7_e = L4_MABX_P.RXstatus_Y0_pe;
30083
30084 /* SystemInitialize for Outport: '<S631>/RX time' */
30085 L4_MABX_B.SFunction1_o8_o = L4_MABX_P.RXtime_Y0_bd;
30086
30087 /* SystemInitialize for Outport: '<S631>/RX delta time' */
30088 L4_MABX_B.SFunction1_o9 = L4_MABX_P.RXdeltatime_Y0_n2;
30089
30090 /* End of SystemInitialize for SubSystem: '<S630>/VDC2_0B1' */
30091
30092 /* SystemInitialize for Enabled SubSystem: '<S445>/CAN_RX_VI_00' */
30093 /* SystemInitialize for Enabled SubSystem: '<S634>/Decode' */
30094 /* InitializeConditions for UnitDelay: '<S637>/Unit_Delay' */
30095 L4_MABX_DW.Unit_Delay_DSTATE_p = L4_MABX_P.Unit_Delay_InitialCondition_im;
30096 for (i = 0; i < 17; i++) {
30097 /* InitializeConditions for UnitDelay: '<S634>/Unit Delay' */
30098 L4_MABX_DW.UnitDelay_DSTATE_c[i] =
30099 L4_MABX_P.UnitDelay_InitialCondition_fw[i];
30100
30101 /* SystemInitialize for Outport: '<S637>/RawData' */
30102 L4_MABX_B.Inport[i] = L4_MABX_P.RawData_Y0_o;
30103 }
30104
30105 /* SystemInitialize for Outport: '<S637>/RX_time' */
30106 L4_MABX_B.timeStamp = L4_MABX_P.RX_time_Y0_f;
30107
30108 /* SystemInitialize for Outport: '<S637>/RX_delta_time' */
30109 L4_MABX_B.Subtract_oj = L4_MABX_P.RX_delta_time_Y0_m;
30110
30111 /* End of SystemInitialize for SubSystem: '<S634>/Decode' */
30112
30113 /* SystemInitialize for Outport: '<S634>/RX_status' */
30114 L4_MABX_B.RX_status_di = L4_MABX_P.RX_status_Y0_i;
30115
30116 /* End of SystemInitialize for SubSystem: '<S445>/CAN_RX_VI_00' */
30117
30118 /* SystemInitialize for Enabled SubSystem: '<S616>/SSI2_031' */
30119 /* SystemInitialize for Outport: '<S617>/PitchAngleExRange' */
30120 L4_MABX_B.SFunction1_o1_bv = L4_MABX_P.PitchAngleExRange_Y0;
30121
30122 /* SystemInitialize for Outport: '<S617>/RollAngleExRange' */
30123 L4_MABX_B.SFunction1_o2_f = L4_MABX_P.RollAngleExRange_Y0;
30124
30125 /* SystemInitialize for Outport: '<S617>/PitchAngleExRangeCompensation' */
30126 L4_MABX_B.SFunction1_o3_lm = L4_MABX_P.PitchAngleExRangeCompensation_Y;
30127
30128 /* SystemInitialize for Outport: '<S617>/PitchAngleExRangeFigureOfMerit' */
30129 L4_MABX_B.SFunction1_o4_j = L4_MABX_P.PitchAngleExRangeFigureOfMerit_;
30130
30131 /* SystemInitialize for Outport: '<S617>/RollAngleExRangeCompensation' */
30132 L4_MABX_B.SFunction1_o5_o = L4_MABX_P.RollAngleExRangeCompensation_Y0;
30133
30134 /* SystemInitialize for Outport: '<S617>/RollAngleExRangeFigureOfMerit' */
30135 L4_MABX_B.SFunction1_o6_id = L4_MABX_P.RollAngleExRangeFigureOfMerit_Y;
30136
30137 /* SystemInitialize for Outport: '<S617>/RllAndPtchExRngMsurementLatency' */
30138 L4_MABX_B.SFunction1_o7_gn = L4_MABX_P.RllAndPtchExRngMsurementLatency;
30139
30140 /* SystemInitialize for Outport: '<S617>/RX status' */
30141 L4_MABX_B.SFunction1_o8_a = L4_MABX_P.RXstatus_Y0_p5;
30142
30143 /* SystemInitialize for Outport: '<S617>/RX time' */
30144 L4_MABX_B.SFunction1_o9_aw = L4_MABX_P.RXtime_Y0_h;
30145
30146 /* SystemInitialize for Outport: '<S617>/RX delta time' */
30147 L4_MABX_B.SFunction1_o10_a = L4_MABX_P.RXdeltatime_Y0_p2;
30148
30149 /* End of SystemInitialize for SubSystem: '<S616>/SSI2_031' */
30150
30151 /* SystemInitialize for Enabled SubSystem: '<S607>/PX2_LanePosEst' */
30152 /* SystemInitialize for Outport: '<S610>/PX2_LanePosEstAngle' */
30153 L4_MABX_B.SFunction1_o1_ai = L4_MABX_P.PX2_LanePosEstAngle_Y0;
30154
30155 /* SystemInitialize for Outport: '<S610>/PX2_LanePosEstNumPoints' */
30156 L4_MABX_B.SFunction1_o2_dt = L4_MABX_P.PX2_LanePosEstNumPoints_Y0;
30157
30158 /* SystemInitialize for Outport: '<S610>/PX2_LanePosEstPosition' */
30159 L4_MABX_B.SFunction1_o3_kw = L4_MABX_P.PX2_LanePosEstPosition_Y0;
30160
30161 /* SystemInitialize for Outport: '<S610>/PX2_LanePosEstNumLanes' */
30162 L4_MABX_B.SFunction1_o4_cj = L4_MABX_P.PX2_LanePosEstNumLanes_Y0;
30163
30164 /* SystemInitialize for Outport: '<S610>/RX status' */
30165 L4_MABX_B.SFunction1_o5_c = L4_MABX_P.RXstatus_Y0_gyv;
30166
30167 /* SystemInitialize for Outport: '<S610>/RX time' */
30168 L4_MABX_B.SFunction1_o6_im = L4_MABX_P.RXtime_Y0_ng;
30169
30170 /* SystemInitialize for Outport: '<S610>/RX delta time' */
30171 L4_MABX_B.SFunction1_o7_l = L4_MABX_P.RXdeltatime_Y0_hc;
30172
30173 /* End of SystemInitialize for SubSystem: '<S607>/PX2_LanePosEst' */
30174
30175 /* SystemInitialize for Enabled SubSystem: '<S614>/Bendix_Prop2C2_Status_30' */
30176 /* SystemInitialize for Outport: '<S615>/PressureP4' */
30177 L4_MABX_B.SFunction1_o1_ad = L4_MABX_P.PressureP4_Y0;
30178
30179 /* SystemInitialize for Outport: '<S615>/PressureP1' */
30180 L4_MABX_B.SFunction1_o2_iy = L4_MABX_P.PressureP1_Y0;
30181
30182 /* SystemInitialize for Outport: '<S615>/PressureP21' */
30183 L4_MABX_B.SFunction1_o3_ax1 = L4_MABX_P.PressureP21_Y0;
30184
30185 /* SystemInitialize for Outport: '<S615>/PressureP22' */
30186 L4_MABX_B.SFunction1_o4_aj = L4_MABX_P.PressureP22_Y0;
30187
30188 /* SystemInitialize for Outport: '<S615>/PressureP42' */
30189 L4_MABX_B.SFunction1_o5_fo = L4_MABX_P.PressureP42_Y0;
30190
30191 /* SystemInitialize for Outport: '<S615>/XPR1ControlStatus' */
30192 L4_MABX_B.SFunction1_o6_d = L4_MABX_P.XPR1ControlStatus_Y0;
30193
30194 /* SystemInitialize for Outport: '<S615>/XPR2ControlStatus' */
30195 L4_MABX_B.SFunction1_o7_io = L4_MABX_P.XPR2ControlStatus_Y0;
30196
30197 /* SystemInitialize for Outport: '<S615>/XPR3ControlStatus' */
30198 L4_MABX_B.SFunction1_o8_g = L4_MABX_P.XPR3ControlStatus_Y0;
30199
30200 /* SystemInitialize for Outport: '<S615>/XPRErrorState' */
30201 L4_MABX_B.SFunction1_o9_m = L4_MABX_P.XPRErrorState_Y0;
30202
30203 /* SystemInitialize for Outport: '<S615>/XPRControlMode' */
30204 L4_MABX_B.SFunction1_o10_e = L4_MABX_P.XPRControlMode_Y0;
30205
30206 /* SystemInitialize for Outport: '<S615>/RX status' */
30207 L4_MABX_B.SFunction1_o11_a = L4_MABX_P.RXstatus_Y0_hv;
30208
30209 /* SystemInitialize for Outport: '<S615>/RX time' */
30210 L4_MABX_B.SFunction1_o12_i = L4_MABX_P.RXtime_Y0_ix;
30211
30212 /* SystemInitialize for Outport: '<S615>/RX delta time' */
30213 L4_MABX_B.SFunction1_o13_l = L4_MABX_P.RXdeltatime_Y0_b;
30214
30215 /* End of SystemInitialize for SubSystem: '<S614>/Bendix_Prop2C2_Status_30' */
30216
30217 /* SystemInitialize for Enabled SubSystem: '<S564>/PropB_REAX_2_13' */
30218 /* SystemInitialize for Outport: '<S566>/PropB_REAX_2_ActualHandwheelPos' */
30219 L4_MABX_B.SFunction1_o1_fs = L4_MABX_P.PropB_REAX_2_ActualHandwheelPos;
30220
30221 /* SystemInitialize for Outport: '<S566>/PropB_REAX_2_EchoedStrWhlPos' */
30222 L4_MABX_B.SFunction1_o2_ji = L4_MABX_P.PropB_REAX_2_EchoedStrWhlPos_Y0;
30223
30224 /* SystemInitialize for Outport: '<S566>/RX status' */
30225 L4_MABX_B.SFunction1_o3_k5 = L4_MABX_P.RXstatus_Y0_cn;
30226
30227 /* SystemInitialize for Outport: '<S566>/RX time' */
30228 L4_MABX_B.SFunction1_o4_g4 = L4_MABX_P.RXtime_Y0_kq;
30229
30230 /* SystemInitialize for Outport: '<S566>/RX delta time' */
30231 L4_MABX_B.SFunction1_o5_ot = L4_MABX_P.RXdeltatime_Y0_mi;
30232
30233 /* End of SystemInitialize for SubSystem: '<S564>/PropB_REAX_2_13' */
30234
30235 /* SystemInitialize for Enabled SubSystem: '<S565>/PropB_REAX_2_13' */
30236 /* SystemInitialize for Outport: '<S567>/PropB_REAX_2_ActualHandwheelPos' */
30237 L4_MABX_B.SFunction1_o1_i5 = L4_MABX_P.PropB_REAX_2_ActualHandwheelP_n;
30238
30239 /* SystemInitialize for Outport: '<S567>/PropB_REAX_2_EchoedStrWhlPos' */
30240 L4_MABX_B.SFunction1_o2_ll = L4_MABX_P.PropB_REAX_2_EchoedStrWhlPos__p;
30241
30242 /* SystemInitialize for Outport: '<S567>/RX status' */
30243 L4_MABX_B.SFunction1_o3_m2 = L4_MABX_P.RXstatus_Y0_mq;
30244
30245 /* SystemInitialize for Outport: '<S567>/RX time' */
30246 L4_MABX_B.SFunction1_o4_dwj = L4_MABX_P.RXtime_Y0_j3;
30247
30248 /* SystemInitialize for Outport: '<S567>/RX delta time' */
30249 L4_MABX_B.SFunction1_o5_i0 = L4_MABX_P.RXdeltatime_Y0_o4;
30250
30251 /* End of SystemInitialize for SubSystem: '<S565>/PropB_REAX_2_13' */
30252
30253 /* SystemInitialize for Atomic SubSystem: '<S65>/Task_10ms' */
30254 /* InitializeConditions for RateTransition: '<S81>/TmpRTBAtSignal Conversion1Inport1' */
30255 L4_MABX_DW.TmpRTBAtSignalConversion1Inport =
30256 L4_MABX_P.TmpRTBAtSignalConversion1Inport;
30257
30258 /* InitializeConditions for UnitDelay: '<S376>/Unit_Delay' */
30259 L4_MABX_DW.Unit_Delay_DSTATE_cx = L4_MABX_P.Unit_Delay_InitialCondition_b1;
30260
30261 /* InitializeConditions for UnitDelay: '<S377>/Unit_Delay' */
30262 L4_MABX_DW.Unit_Delay_DSTATE_d0 = L4_MABX_P.Unit_Delay_InitialCondition_gz;
30263
30264 /* InitializeConditions for UnitDelay: '<S334>/Unit_Delay' */
30265 L4_MABX_DW.Unit_Delay_DSTATE_e = L4_MABX_P.Unit_Delay_InitialCondition_i;
30266
30267 /* InitializeConditions for UnitDelay: '<S381>/FixPt Unit Delay2' */
30268 L4_MABX_DW.FixPtUnitDelay2_DSTATE_a =
30269 L4_MABX_P.FixPtUnitDelay2_InitialCondi_f5;
30270
30271 /* InitializeConditions for UnitDelay: '<S381>/FixPt Unit Delay1' */
30272 L4_MABX_DW.FixPtUnitDelay1_DSTATE_h =
30273 L4_MABX_P.FixPtUnitDelay1_InitialCondit_l;
30274
30275 /* InitializeConditions for UnitDelay: '<S378>/Unit_Delay' */
30276 L4_MABX_DW.Unit_Delay_DSTATE_m = L4_MABX_P.Unit_Delay_InitialCondition_hae;
30277
30278 /* InitializeConditions for UnitDelay: '<S365>/Unit_Delay' */
30279 L4_MABX_DW.Unit_Delay_DSTATE_iy = L4_MABX_P.Unit_Delay_InitialCondition_a;
30280
30281 /* InitializeConditions for UnitDelay: '<S366>/Unit_Delay' */
30282 L4_MABX_DW.Unit_Delay_DSTATE_mv = L4_MABX_P.Unit_Delay_InitialCondition_gt;
30283
30284 /* InitializeConditions for UnitDelay: '<S332>/Unit_Delay' */
30285 L4_MABX_DW.Unit_Delay_DSTATE_g = L4_MABX_P.Unit_Delay_InitialCondition_fb;
30286
30287 /* InitializeConditions for UnitDelay: '<S370>/FixPt Unit Delay2' */
30288 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ip =
30289 L4_MABX_P.FixPtUnitDelay2_InitialCondi_po;
30290
30291 /* InitializeConditions for UnitDelay: '<S370>/FixPt Unit Delay1' */
30292 L4_MABX_DW.FixPtUnitDelay1_DSTATE_hq =
30293 L4_MABX_P.FixPtUnitDelay1_InitialCondit_d;
30294
30295 /* InitializeConditions for UnitDelay: '<S367>/Unit_Delay' */
30296 L4_MABX_DW.Unit_Delay_DSTATE_b = L4_MABX_P.Unit_Delay_InitialCondition_c;
30297
30298 /* InitializeConditions for RateTransition: '<S81>/TmpRTBAtSignal Conversion3Inport1' */
30299 L4_MABX_DW.TmpRTBAtSignalConversion3Inport =
30300 L4_MABX_P.TmpRTBAtSignalConversion3Inport;
30301
30302 /* InitializeConditions for RateTransition: '<S81>/TmpRTBAtSignal Conversion2Inport1' */
30303 L4_MABX_DW.TmpRTBAtSignalConversion2Inport =
30304 L4_MABX_P.TmpRTBAtSignalConversion2Inport;
30305
30306 /* InitializeConditions for UnitDelay: '<S347>/Unit_Delay' */
30307 L4_MABX_DW.Unit_Delay_DSTATE_bw = L4_MABX_P.Unit_Delay_InitialCondition_e;
30308
30309 /* InitializeConditions for UnitDelay: '<S349>/Unit_Delay' */
30310 L4_MABX_DW.Unit_Delay_DSTATE_ko = L4_MABX_P.Unit_Delay_InitialCondition_ml;
30311
30312 /* InitializeConditions for UnitDelay: '<S358>/FixPt Unit Delay2' */
30313 L4_MABX_DW.FixPtUnitDelay2_DSTATE_fh =
30314 L4_MABX_P.FixPtUnitDelay2_InitialCondit_i;
30315
30316 /* InitializeConditions for UnitDelay: '<S358>/FixPt Unit Delay1' */
30317 L4_MABX_DW.FixPtUnitDelay1_DSTATE_li =
30318 L4_MABX_P.FixPtUnitDelay1_InitialCondit_h;
30319
30320 /* InitializeConditions for UnitDelay: '<S356>/Unit_Delay' */
30321 L4_MABX_DW.Unit_Delay_DSTATE_ps = L4_MABX_P.Unit_Delay_InitialCondition_j;
30322
30323 /* InitializeConditions for UnitDelay: '<S329>/Delay Input1' */
30324 L4_MABX_DW.DelayInput1_DSTATE[0] = L4_MABX_P.DetectChange1_vinit;
30325
30326 /* InitializeConditions for UnitDelay: '<S336>/Delay Input1' */
30327 L4_MABX_DW.DelayInput1_DSTATE_f[0] = L4_MABX_P.DetectChange1_vinit_n;
30328
30329 /* InitializeConditions for UnitDelay: '<S329>/Delay Input1' */
30330 L4_MABX_DW.DelayInput1_DSTATE[1] = L4_MABX_P.DetectChange1_vinit;
30331
30332 /* InitializeConditions for UnitDelay: '<S336>/Delay Input1' */
30333 L4_MABX_DW.DelayInput1_DSTATE_f[1] = L4_MABX_P.DetectChange1_vinit_n;
30334
30335 /* InitializeConditions for UnitDelay: '<S338>/Unit_Delay' */
30336 L4_MABX_DW.Unit_Delay_DSTATE_la = L4_MABX_P.Unit_Delay_InitialCondition_ag;
30337
30338 /* InitializeConditions for UnitDelay: '<S342>/FixPt Unit Delay2' */
30339 L4_MABX_DW.FixPtUnitDelay2_DSTATE_c =
30340 L4_MABX_P.FixPtUnitDelay2_InitialCondi_ck;
30341
30342 /* InitializeConditions for UnitDelay: '<S342>/FixPt Unit Delay1' */
30343 L4_MABX_DW.FixPtUnitDelay1_DSTATE_e =
30344 L4_MABX_P.FixPtUnitDelay1_InitialCondit_m;
30345
30346 /* InitializeConditions for UnitDelay: '<S337>/Unit_Delay' */
30347 L4_MABX_DW.Unit_Delay_1_DSTATE_j = L4_MABX_P.Unit_Delay_1_InitialCondition;
30348 L4_MABX_DW.Unit_Delay_2_DSTATE_e = L4_MABX_P.Unit_Delay_2_InitialCondition;
30349 L4_MABX_DW.Unit_Delay_3_DSTATE_j = L4_MABX_P.Unit_Delay_3_InitialCondition;
30350
30351 /* InitializeConditions for UnitDelay: '<S335>/Unit_Delay' */
30352 L4_MABX_DW.Unit_Delay_DSTATE_f = L4_MABX_P.Unit_Delay_InitialCondition_e2;
30353
30354 /* InitializeConditions for UnitDelay: '<S101>/Unit_Delay' */
30355 L4_MABX_DW.Unit_Delay_DSTATE_eu4 = L4_MABX_P.Unit_Delay_InitialCondition_ip;
30356
30357 /* InitializeConditions for UnitDelay: '<S197>/Unit_Delay1' */
30358 L4_MABX_DW.Unit_Delay1_DSTATE_d = L4_MABX_P.Unit_Delay1_InitialCondition_f;
30359
30360 /* InitializeConditions for UnitDelay: '<S197>/Unit_Delay2' */
30361 L4_MABX_DW.Unit_Delay2_DSTATE_e = L4_MABX_P.Unit_Delay2_InitialCondition_a;
30362
30363 /* InitializeConditions for UnitDelay: '<S196>/UD' */
30364 L4_MABX_DW.UD_DSTATE = L4_MABX_P.DiscreteDerivative1_ICPrevScale;
30365
30366 /* InitializeConditions for UnitDelay: '<S314>/Unit_Delay1' */
30367 L4_MABX_DW.Unit_Delay1_DSTATE_db = L4_MABX_P.Unit_Delay1_InitialCondition_m;
30368
30369 /* InitializeConditions for UnitDelay: '<S314>/Unit_Delay2' */
30370 L4_MABX_DW.Unit_Delay2_DSTATE_d = L4_MABX_P.Unit_Delay2_InitialCondition_g;
30371
30372 /* InitializeConditions for UnitDelay: '<S313>/Delay Input1' */
30373 L4_MABX_DW.DelayInput1_DSTATE_f0 = L4_MABX_P.DetectChange_vinit;
30374
30375 /* InitializeConditions for UnitDelay: '<S315>/Unit_Delay1' */
30376 L4_MABX_DW.Unit_Delay1_DSTATE_a = L4_MABX_P.Unit_Delay1_InitialCondition_ps;
30377
30378 /* InitializeConditions for UnitDelay: '<S315>/Unit_Delay2' */
30379 L4_MABX_DW.Unit_Delay2_DSTATE_im = L4_MABX_P.Unit_Delay2_InitialCondition_ji;
30380
30381 /* InitializeConditions for UnitDelay: '<S316>/Unit_Delay1' */
30382 L4_MABX_DW.Unit_Delay1_DSTATE_p = L4_MABX_P.Unit_Delay1_InitialCondition_j;
30383
30384 /* InitializeConditions for UnitDelay: '<S316>/Unit_Delay2' */
30385 L4_MABX_DW.Unit_Delay2_DSTATE_p = L4_MABX_P.Unit_Delay2_InitialCondition_ap;
30386
30387 /* InitializeConditions for UnitDelay: '<S278>/Unit Delay' */
30388 L4_MABX_DW.UnitDelay_DSTATE_d = L4_MABX_P.UnitDelay_InitialCondition_c;
30389
30390 /* InitializeConditions for UnitDelay: '<S288>/Unit Delay' */
30391 L4_MABX_DW.UnitDelay_DSTATE_m = L4_MABX_P.UnitDelay_InitialCondition;
30392
30393 /* InitializeConditions for UnitDelay: '<S289>/Unit Delay' */
30394 L4_MABX_DW.UnitDelay_DSTATE_m0 = L4_MABX_P.UnitDelay_InitialCondition_g;
30395
30396 /* InitializeConditions for UnitDelay: '<S289>/Unit Delay1' */
30397 L4_MABX_DW.UnitDelay1_DSTATE_k = L4_MABX_P.UnitDelay1_InitialCondition;
30398
30399 /* InitializeConditions for RateTransition: '<S80>/TmpRTBAtrad2deg1Inport1' */
30400 L4_MABX_DW.TmpRTBAtrad2deg1Inport1_Buffer0 =
30401 L4_MABX_P.TmpRTBAtrad2deg1Inport1_Initial;
30402
30403 /* InitializeConditions for RateTransition: '<S80>/TmpRTBAtsignCurveOffsetInport1' */
30404 L4_MABX_DW.TmpRTBAtsignCurveOffsetInport1_ =
30405 L4_MABX_P.TmpRTBAtsignCurveOffsetInport1_;
30406
30407 /* InitializeConditions for UnitDelay: '<S283>/Unit Delay' */
30408 L4_MABX_DW.UnitDelay_DSTATE_m1 = L4_MABX_P.UnitDelay_InitialCondition_e;
30409
30410 /* InitializeConditions for RateTransition: '<S277>/TmpRTBAtAdd2Inport2' */
30411 L4_MABX_DW.TmpRTBAtAdd2Inport2_Buffer0 =
30412 L4_MABX_P.TmpRTBAtAdd2Inport2_InitialCond;
30413
30414 /* InitializeConditions for RateLimiter: '<S299>/Limit Rate Limiter' */
30415 L4_MABX_DW.PrevY = L4_MABX_P.LimitRateLimiter_IC;
30416
30417 /* InitializeConditions for DiscreteIntegrator: '<S298>/Integrator' */
30418 L4_MABX_DW.Integrator_DSTATE = L4_MABX_P.Integrator_IC;
30419 L4_MABX_DW.Integrator_PrevResetState = 2;
30420
30421 /* InitializeConditions for DiscreteIntegrator: '<S298>/Filter' */
30422 L4_MABX_DW.Filter_DSTATE = L4_MABX_P.Filter_IC;
30423 L4_MABX_DW.Filter_PrevResetState = 2;
30424
30425 /* InitializeConditions for UnitDelay: '<S300>/Delay Input' */
30426 L4_MABX_DW.DelayInput_DSTATE = L4_MABX_P.TransferFcnLeadorLag_ICPrevInpu;
30427
30428 /* InitializeConditions for UnitDelay: '<S300>/Delay Output' */
30429 L4_MABX_DW.DelayOutput_DSTATE = L4_MABX_P.TransferFcnLeadorLag_ICPrevOutp;
30430
30431 /* InitializeConditions for DiscreteTransferFcn: '<S274>/Error 5Hz LPF' */
30432 L4_MABX_DW.Error5HzLPF_states[0] = L4_MABX_P.Error5HzLPF_InitialStates;
30433
30434 /* InitializeConditions for DiscreteTransferFcn: '<S274>/5Hz LPF' */
30435 L4_MABX_DW.uHzLPF_states[0] = L4_MABX_P.uHzLPF_InitialStates;
30436
30437 /* InitializeConditions for DiscreteTransferFcn: '<S274>/Error 5Hz LPF' */
30438 L4_MABX_DW.Error5HzLPF_states[1] = L4_MABX_P.Error5HzLPF_InitialStates;
30439
30440 /* InitializeConditions for DiscreteTransferFcn: '<S274>/5Hz LPF' */
30441 L4_MABX_DW.uHzLPF_states[1] = L4_MABX_P.uHzLPF_InitialStates;
30442
30443 /* InitializeConditions for DiscreteTransferFcn: '<S274>/Error 5Hz LPF' */
30444 L4_MABX_DW.Error5HzLPF_states[2] = L4_MABX_P.Error5HzLPF_InitialStates;
30445
30446 /* InitializeConditions for DiscreteTransferFcn: '<S274>/5Hz LPF' */
30447 L4_MABX_DW.uHzLPF_states[2] = L4_MABX_P.uHzLPF_InitialStates;
30448
30449 /* InitializeConditions for DiscreteIntegrator: '<S292>/Discrete-Time Integrator' */
30450 L4_MABX_DW.DiscreteTimeIntegrator_IC_LOADI = 1U;
30451 L4_MABX_DW.DiscreteTimeIntegrator_PrevRese = 2;
30452
30453 /* InitializeConditions for UnitDelay: '<S308>/Delay Input2' */
30454 L4_MABX_DW.DelayInput2_DSTATE = L4_MABX_P.DelayInput2_InitialCondition;
30455
30456 /* InitializeConditions for DiscreteIntegrator: '<S80>/Discrete-Time Integrator' */
30457 L4_MABX_DW.DiscreteTimeIntegrator_DSTATE_e =
30458 L4_MABX_P.DiscreteTimeIntegrator_IC;
30459 L4_MABX_DW.DiscreteTimeIntegrator_PrevRe_e = 0;
30460
30461 /* InitializeConditions for UnitDelay: '<S80>/Unit Delay' */
30462 L4_MABX_DW.UnitDelay_DSTATE_e = L4_MABX_P.UnitDelay_InitialCondition_g1;
30463
30464 /* InitializeConditions for UnitDelay: '<S360>/FixPt Unit Delay2' */
30465 L4_MABX_DW.FixPtUnitDelay2_DSTATE_aw =
30466 L4_MABX_P.FixPtUnitDelay2_InitialCondit_g;
30467
30468 /* InitializeConditions for UnitDelay: '<S360>/FixPt Unit Delay1' */
30469 L4_MABX_DW.FixPtUnitDelay1_DSTATE_p =
30470 L4_MABX_P.FixPtUnitDelay1_InitialCondi_dl;
30471
30472 /* InitializeConditions for UnitDelay: '<S361>/FixPt Unit Delay2' */
30473 L4_MABX_DW.FixPtUnitDelay2_DSTATE_g =
30474 L4_MABX_P.FixPtUnitDelay2_InitialCondi_pz;
30475
30476 /* InitializeConditions for UnitDelay: '<S361>/FixPt Unit Delay1' */
30477 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g =
30478 L4_MABX_P.FixPtUnitDelay1_InitialCondi_ol;
30479
30480 /* InitializeConditions for UnitDelay: '<S355>/Unit_Delay' */
30481 L4_MABX_DW.Unit_Delay_DSTATE_j = L4_MABX_P.Unit_Delay_InitialCondition_b;
30482
30483 /* SystemInitialize for Enabled SubSystem: '<S79>/Throttle_controller_gov' */
30484 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay1' */
30485 L4_MABX_DW.Unit_Delay1_DSTATE_p1 = L4_MABX_P.Unit_Delay1_InitialCondition_o;
30486
30487 /* InitializeConditions for UnitDelay: '<S214>/Unit_Delay' */
30488 L4_MABX_DW.Unit_Delay_DSTATE_lq = L4_MABX_P.Unit_Delay_InitialCondition_b2;
30489
30490 /* InitializeConditions for UnitDelay: '<S241>/Unit_Delay' */
30491 L4_MABX_DW.Unit_Delay_DSTATE_be = L4_MABX_P.Unit_Delay_InitialCondition_lj;
30492
30493 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay1' */
30494 L4_MABX_DW.Unit_Delay1_DSTATE_h5 = L4_MABX_P.Unit_Delay1_InitialCondition_a;
30495
30496 /* InitializeConditions for UnitDelay: '<S262>/Unit_Delay' */
30497 L4_MABX_DW.Unit_Delay_DSTATE_fi = L4_MABX_P.Unit_Delay_InitialCondition_bm;
30498
30499 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay2' */
30500 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gq =
30501 L4_MABX_P.FixPtUnitDelay2_InitialCondit_a;
30502
30503 /* InitializeConditions for UnitDelay: '<S266>/FixPt Unit Delay1' */
30504 L4_MABX_DW.FixPtUnitDelay1_DSTATE_a0 =
30505 L4_MABX_P.FixPtUnitDelay1_InitialCondit_o;
30506
30507 /* InitializeConditions for UnitDelay: '<S261>/Unit_Delay2' */
30508 L4_MABX_DW.Unit_Delay2_DSTATE_m = L4_MABX_P.Unit_Delay2_InitialCondition_j;
30509
30510 /* InitializeConditions for UnitDelay: '<S216>/Unit_Delay' */
30511 L4_MABX_DW.Unit_Delay_DSTATE_fz = L4_MABX_P.Unit_Delay_InitialCondition_kg;
30512
30513 /* SystemInitialize for Enabled SubSystem: '<S238>/Calculate_D_term' */
30514 L4_MA_Calculate_D_term_Init(&L4_MABX_B.Calculate_D_term_h,
30515 &L4_MABX_DW.Calculate_D_term_h, &L4_MABX_P.Calculate_D_term_h);
30516
30517 /* End of SystemInitialize for SubSystem: '<S238>/Calculate_D_term' */
30518
30519 /* SystemInitialize for Enabled SubSystem: '<S238>/Calculate_I_term' */
30520 L4_MA_Calculate_I_term_Init(&L4_MABX_B.Calculate_I_term_n,
30521 &L4_MABX_DW.Calculate_I_term_n, &L4_MABX_P.Calculate_I_term_n);
30522
30523 /* End of SystemInitialize for SubSystem: '<S238>/Calculate_I_term' */
30524
30525 /* SystemInitialize for Outport: '<S206>/PID_output' */
30526 L4_MABX_B.If_Then_Else_pi.Switch = L4_MABX_P.PID_output_Y0_c;
30527
30528 /* SystemInitialize for Outport: '<S206>/PID_output_unlim' */
30529 L4_MABX_B.Add_ds = L4_MABX_P.PID_output_unlim_Y0;
30530
30531 /* SystemInitialize for Outport: '<S206>/PID_control_error' */
30532 L4_MABX_B.If_Then_Else_k2.Switch = L4_MABX_P.PID_control_error_Y0;
30533
30534 /* SystemInitialize for Outport: '<S206>/PID_p_term' */
30535 L4_MABX_B.Product_i = L4_MABX_P.PID_p_term_Y0;
30536
30537 /* SystemInitialize for Outport: '<S206>/PID_i_term' */
30538 L4_MABX_B.PID_i_term_c = L4_MABX_P.PID_i_term_Y0;
30539
30540 /* SystemInitialize for Outport: '<S206>/PID_d_term' */
30541 L4_MABX_B.PID_d_term_c = L4_MABX_P.PID_d_term_Y0;
30542
30543 /* SystemInitialize for Outport: '<S206>/PID_hold_i_term_f' */
30544 L4_MABX_B.PID_hold_i_term_f_b = L4_MABX_P.PID_hold_i_term_f_Y0;
30545
30546 /* End of SystemInitialize for SubSystem: '<S79>/Throttle_controller_gov' */
30547
30548 /* SystemInitialize for Enabled SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
30549 /* InitializeConditions for UnitDelay: '<S178>/Unit_Delay' */
30550 L4_MABX_DW.Unit_Delay_DSTATE_o = L4_MABX_P.Unit_Delay_InitialCondition_l;
30551
30552 /* InitializeConditions for UnitDelay: '<S188>/Unit_Delay' */
30553 L4_MABX_DW.Unit_Delay_DSTATE_ae = L4_MABX_P.Unit_Delay_InitialCondition_cl;
30554
30555 /* InitializeConditions for UnitDelay: '<S192>/FixPt Unit Delay2' */
30556 L4_MABX_DW.FixPtUnitDelay2_DSTATE_la =
30557 L4_MABX_P.FixPtUnitDelay2_InitialCondit_f;
30558
30559 /* InitializeConditions for UnitDelay: '<S192>/FixPt Unit Delay1' */
30560 L4_MABX_DW.FixPtUnitDelay1_DSTATE_d =
30561 L4_MABX_P.FixPtUnitDelay1_InitialCondit_j;
30562
30563 /* InitializeConditions for UnitDelay: '<S189>/Unit_Delay' */
30564 L4_MABX_DW.Unit_Delay_DSTATE_om = L4_MABX_P.Unit_Delay_InitialCondition_ha;
30565
30566 /* SystemInitialize for Outport: '<S178>/Shift_interlock_brake_press_target_kpa' */
30567 L4_MABX_B.If_Then_Else_il.Switch = L4_MABX_P.Shift_interlock_brake_press_tar;
30568
30569 /* SystemInitialize for Outport: '<S178>/F_Shift_interlock_conditions_met' */
30570 L4_MABX_B.F_Shift_interlock_conditions_me =
30571 L4_MABX_P.F_Shift_interlock_conditions_me;
30572
30573 /* End of SystemInitialize for SubSystem: '<S99>/Determine_shift_interlock_brake_pressure_target' */
30574
30575 /* SystemInitialize for Enabled SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
30576 /* InitializeConditions for UnitDelay: '<S177>/Unit_Delay' */
30577 L4_MABX_DW.Unit_Delay_DSTATE_c = L4_MABX_P.Unit_Delay_InitialCondition_d;
30578
30579 /* InitializeConditions for UnitDelay: '<S181>/Unit_Delay' */
30580 L4_MABX_DW.Unit_Delay_DSTATE_or = L4_MABX_P.Unit_Delay_InitialCondition_fy;
30581
30582 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay2' */
30583 L4_MABX_DW.FixPtUnitDelay2_DSTATE_je =
30584 L4_MABX_P.FixPtUnitDelay2_InitialCondit_e;
30585
30586 /* InitializeConditions for UnitDelay: '<S185>/FixPt Unit Delay1' */
30587 L4_MABX_DW.FixPtUnitDelay1_DSTATE_b =
30588 L4_MABX_P.FixPtUnitDelay1_InitialCondit_p;
30589
30590 /* InitializeConditions for UnitDelay: '<S182>/Unit_Delay' */
30591 L4_MABX_DW.Unit_Delay_DSTATE_oj = L4_MABX_P.Unit_Delay_InitialCondition_k;
30592
30593 /* SystemInitialize for Outport: '<S177>/Brake_hold_brake_press_target_kpa' */
30594 L4_MABX_B.If_Then_Else_gj.Switch = L4_MABX_P.Brake_hold_brake_press_target_k;
30595
30596 /* SystemInitialize for Outport: '<S177>/F_Brake_hold_conditions_met' */
30597 L4_MABX_B.F_Brake_hold_conditions_met =
30598 L4_MABX_P.F_Brake_hold_conditions_met_Y0;
30599
30600 /* End of SystemInitialize for SubSystem: '<S99>/Determine_brake_hold_pressure_target' */
30601
30602 /* SystemInitialize for Enabled SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
30603 /* InitializeConditions for UnitDelay: '<S105>/Unit_Delay' */
30604 L4_MABX_DW.Unit_Delay_DSTATE_dc = L4_MABX_P.Unit_Delay_InitialCondition;
30605
30606 /* InitializeConditions for UnitDelay: '<S109>/Unit_Delay' */
30607 L4_MABX_DW.Unit_Delay_DSTATE_omj = L4_MABX_P.Unit_Delay_InitialCondition_lt;
30608
30609 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay1' */
30610 L4_MABX_DW.Unit_Delay1_DSTATE_b = L4_MABX_P.Unit_Delay1_InitialCondition;
30611
30612 /* InitializeConditions for UnitDelay: '<S130>/Unit_Delay' */
30613 L4_MABX_DW.Unit_Delay_DSTATE_h4 = L4_MABX_P.Unit_Delay_InitialCondition_og;
30614
30615 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay2' */
30616 L4_MABX_DW.FixPtUnitDelay2_DSTATE_gm =
30617 L4_MABX_P.FixPtUnitDelay2_InitialConditio;
30618
30619 /* InitializeConditions for UnitDelay: '<S134>/FixPt Unit Delay1' */
30620 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g1 =
30621 L4_MABX_P.FixPtUnitDelay1_InitialConditio;
30622
30623 /* InitializeConditions for UnitDelay: '<S129>/Unit_Delay2' */
30624 L4_MABX_DW.Unit_Delay2_DSTATE_dy = L4_MABX_P.Unit_Delay2_InitialCondition;
30625
30626 /* InitializeConditions for UnitDelay: '<S104>/Unit_Delay' */
30627 L4_MABX_DW.Unit_Delay_DSTATE_i = L4_MABX_P.Unit_Delay_InitialCondition_p;
30628
30629 /* SystemInitialize for Enabled SubSystem: '<S106>/Calculate_D_term' */
30630 L4_MA_Calculate_D_term_Init(&L4_MABX_B.Calculate_D_term,
30631 &L4_MABX_DW.Calculate_D_term, &L4_MABX_P.Calculate_D_term);
30632
30633 /* End of SystemInitialize for SubSystem: '<S106>/Calculate_D_term' */
30634
30635 /* SystemInitialize for Enabled SubSystem: '<S106>/Calculate_I_term' */
30636 L4_MA_Calculate_I_term_Init(&L4_MABX_B.Calculate_I_term,
30637 &L4_MABX_DW.Calculate_I_term, &L4_MABX_P.Calculate_I_term);
30638
30639 /* End of SystemInitialize for SubSystem: '<S106>/Calculate_I_term' */
30640
30641 /* SystemInitialize for Outport: '<S96>/PID_output' */
30642 L4_MABX_B.If_Then_Else_nj.Switch = L4_MABX_P.PID_output_Y0;
30643
30644 /* End of SystemInitialize for SubSystem: '<S77>/Bendix_2C2_brake_application_pressure_feedback_controller' */
30645
30646 /* SystemInitialize for Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
30647 L4_MABX_B.TimeVectorRaw[0] = 0.0;
30648 L4_MABX_B.TimeVectorRaw[1] = 0.001;
30649 L4_MABX_B.TimeVectorRaw[2] = 0.002;
30650 L4_MABX_B.TimeVectorRaw[3] = 0.003;
30651 L4_MABX_B.TimeVectorRaw[4] = 0.004;
30652 L4_MABX_B.TimeVectorRaw[5] = 0.005;
30653 L4_MABX_B.PositionVectorRaw[0] = 0.0;
30654 L4_MABX_B.PositionVectorRaw[1] = 0.001;
30655 L4_MABX_B.PositionVectorRaw[2] = 0.002;
30656 L4_MABX_B.PositionVectorRaw[3] = 0.003;
30657 L4_MABX_B.PositionVectorRaw[4] = 0.004;
30658 L4_MABX_B.PositionVectorRaw[5] = 0.005;
30659 for (i = 0; i < 6; i++) {
30660 L4_MABX_B.VelocityVectorRaw[i] = 0.0;
30661 L4_MABX_B.AccelerationVectorRaw[i] = 0.0;
30662 L4_MABX_B.JerkVectorRaw[i] = 0.0;
30663 }
30664
30665 /* End of SystemInitialize for Chart: '<S331>/VehicleSpeedSetpointDynamicCalculation' */
30666
30667 /* SystemInitialize for Chart: '<S331>/TwentyPointVectorCalculation' */
30668 L4_MABX_B.TimeVector[0] = 0.0;
30669 L4_MABX_B.TimeVector[1] = 0.001;
30670 L4_MABX_B.TimeVector[2] = 0.002;
30671 L4_MABX_B.TimeVector[3] = 0.003;
30672 L4_MABX_B.TimeVector[4] = 0.004;
30673 L4_MABX_B.TimeVector[5] = 0.005;
30674 L4_MABX_B.TimeVector[6] = 0.006;
30675 L4_MABX_B.TimeVector[7] = 0.007;
30676 L4_MABX_B.TimeVector[8] = 0.008;
30677 L4_MABX_B.TimeVector[9] = 0.0090000000000000011;
30678 L4_MABX_B.TimeVector[10] = 0.01;
30679 L4_MABX_B.TimeVector[11] = 0.011;
30680 L4_MABX_B.TimeVector[12] = 0.012;
30681 L4_MABX_B.TimeVector[13] = 0.013000000000000001;
30682 L4_MABX_B.TimeVector[14] = 0.014;
30683 L4_MABX_B.TimeVector[15] = 0.015;
30684 L4_MABX_B.TimeVector[16] = 0.016;
30685 L4_MABX_B.TimeVector[17] = 0.017;
30686 L4_MABX_B.TimeVector[18] = 0.018000000000000002;
30687 L4_MABX_B.TimeVector[19] = 0.019;
30688 L4_MABX_B.TimeVector[20] = 0.02;
30689 L4_MABX_B.TimeVector[21] = 0.021;
30690 L4_MABX_B.TimeVector[22] = 0.022;
30691 L4_MABX_B.TimeVector[23] = 0.023;
30692 L4_MABX_B.TimeVector[24] = 0.024;
30693 L4_MABX_B.TimeVector[25] = 0.025;
30694 L4_MABX_B.TimeVector[26] = 0.026000000000000002;
30695 L4_MABX_B.TimeVector[27] = 0.027;
30696 L4_MABX_B.TimeVector[28] = 0.028;
30697 L4_MABX_B.TimeVector[29] = 0.029;
30698 L4_MABX_B.TimeVector[30] = 0.03;
30699 L4_MABX_B.TimeVector[31] = 0.031;
30700 L4_MABX_B.TimeVector[32] = 0.032;
30701 L4_MABX_B.PositionVector[0] = 0.0;
30702 L4_MABX_B.PositionVector[1] = 0.001;
30703 L4_MABX_B.PositionVector[2] = 0.002;
30704 L4_MABX_B.PositionVector[3] = 0.003;
30705 L4_MABX_B.PositionVector[4] = 0.004;
30706 L4_MABX_B.PositionVector[5] = 0.005;
30707 L4_MABX_B.PositionVector[6] = 0.006;
30708 L4_MABX_B.PositionVector[7] = 0.007;
30709 L4_MABX_B.PositionVector[8] = 0.008;
30710 L4_MABX_B.PositionVector[9] = 0.0090000000000000011;
30711 L4_MABX_B.PositionVector[10] = 0.01;
30712 L4_MABX_B.PositionVector[11] = 0.011;
30713 L4_MABX_B.PositionVector[12] = 0.012;
30714 L4_MABX_B.PositionVector[13] = 0.013000000000000001;
30715 L4_MABX_B.PositionVector[14] = 0.014;
30716 L4_MABX_B.PositionVector[15] = 0.015;
30717 L4_MABX_B.PositionVector[16] = 0.016;
30718 L4_MABX_B.PositionVector[17] = 0.017;
30719 L4_MABX_B.PositionVector[18] = 0.018000000000000002;
30720 L4_MABX_B.PositionVector[19] = 0.019;
30721 L4_MABX_B.PositionVector[20] = 0.02;
30722 L4_MABX_B.PositionVector[21] = 0.021;
30723 L4_MABX_B.PositionVector[22] = 0.022;
30724 L4_MABX_B.PositionVector[23] = 0.023;
30725 L4_MABX_B.PositionVector[24] = 0.024;
30726 L4_MABX_B.PositionVector[25] = 0.025;
30727 L4_MABX_B.PositionVector[26] = 0.026000000000000002;
30728 L4_MABX_B.PositionVector[27] = 0.027;
30729 L4_MABX_B.PositionVector[28] = 0.028;
30730 L4_MABX_B.PositionVector[29] = 0.029;
30731 L4_MABX_B.PositionVector[30] = 0.03;
30732 L4_MABX_B.PositionVector[31] = 0.031;
30733 L4_MABX_B.PositionVector[32] = 0.032;
30734 memset(&L4_MABX_B.VelocityVector[0], 0, 33U * sizeof(real_T));
30735 memset(&L4_MABX_B.AccelerationVector[0], 0, 33U * sizeof(real_T));
30736 memset(&L4_MABX_B.JerkVector[0], 0, 33U * sizeof(real_T));
30737
30738 /* SystemInitialize for Enabled SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
30739 /* InitializeConditions for UnitDelay: '<S140>/Unit_Delay' */
30740 L4_MABX_DW.Unit_Delay_DSTATE_eu = L4_MABX_P.Unit_Delay_InitialCondition_f;
30741
30742 /* InitializeConditions for UnitDelay: '<S147>/Unit_Delay' */
30743 L4_MABX_DW.Unit_Delay_DSTATE_nw = L4_MABX_P.Unit_Delay_InitialCondition_jb;
30744
30745 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay1' */
30746 L4_MABX_DW.Unit_Delay1_DSTATE_f = L4_MABX_P.Unit_Delay1_InitialCondition_p;
30747
30748 /* InitializeConditions for UnitDelay: '<S168>/Unit_Delay' */
30749 L4_MABX_DW.Unit_Delay_DSTATE_g4 = L4_MABX_P.Unit_Delay_InitialCondition_lq;
30750
30751 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay2' */
30752 L4_MABX_DW.FixPtUnitDelay2_DSTATE_o4 =
30753 L4_MABX_P.FixPtUnitDelay2_InitialCondit_p;
30754
30755 /* InitializeConditions for UnitDelay: '<S172>/FixPt Unit Delay1' */
30756 L4_MABX_DW.FixPtUnitDelay1_DSTATE_g2 =
30757 L4_MABX_P.FixPtUnitDelay1_InitialCondit_b;
30758
30759 /* InitializeConditions for UnitDelay: '<S167>/Unit_Delay2' */
30760 L4_MABX_DW.Unit_Delay2_DSTATE_c = L4_MABX_P.Unit_Delay2_InitialCondition_b;
30761
30762 /* InitializeConditions for UnitDelay: '<S139>/Unit_Delay' */
30763 L4_MABX_DW.Unit_Delay_DSTATE_h = L4_MABX_P.Unit_Delay_InitialCondition_h;
30764
30765 /* SystemInitialize for Enabled SubSystem: '<S144>/Calculate_D_term' */
30766 L4_MA_Calculate_D_term_Init(&L4_MABX_B.Calculate_D_term_p,
30767 &L4_MABX_DW.Calculate_D_term_p, &L4_MABX_P.Calculate_D_term_p);
30768
30769 /* End of SystemInitialize for SubSystem: '<S144>/Calculate_D_term' */
30770
30771 /* SystemInitialize for Enabled SubSystem: '<S144>/Calculate_I_term' */
30772 L4_MA_Calculate_I_term_Init(&L4_MABX_B.Calculate_I_term_e,
30773 &L4_MABX_DW.Calculate_I_term_e, &L4_MABX_P.Calculate_I_term_e);
30774
30775 /* End of SystemInitialize for SubSystem: '<S144>/Calculate_I_term' */
30776
30777 /* SystemInitialize for Outport: '<S97>/PID_output' */
30778 L4_MABX_B.If_Then_Else_fo.Switch = L4_MABX_P.PID_output_Y0_p;
30779
30780 /* End of SystemInitialize for SubSystem: '<S77>/Bendix_2C2_vehicle_speed_feedback_pressure_controller' */
30781
30782 /* SystemInitialize for Chart: '<S79>/Chart' */
30783 L4_MABX_DW.is_active_c19_SUB_L4_Task_10ms_ = 0U;
30784 L4_MABX_DW.is_c19_SUB_L4_Task_10ms_SUB_STA = L4_MABX_IN_NO_ACTIVE_CHILD;
30785 L4_MABX_B.CtrlState = ENUM_AUTO_CTRL_STATE_T_NOT_AVAILABLE;
30786 L4_MABX_B.VehCtrlState = ENUM_AUTO_CTRL_VEHICLE_STATE_T_NOT_AVAILABLE;
30787
30788 /* SystemInitialize for Enabled SubSystem: '<S79>/Engine_speed_target' */
30789 /* SystemInitialize for Outport: '<S204>/Out1' */
30790 L4_MABX_B.MinMax1_n = L4_MABX_P.Out1_Y0;
30791
30792 /* End of SystemInitialize for SubSystem: '<S79>/Engine_speed_target' */
30793
30794 /* SystemInitialize for Chart: '<S205>/Relay_control_state_machine' */
30795 L4_MABX_DW.is_POWER_DOWN_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
30796 L4_MABX_DW.is_POWER_UP_ROUTINE = L4_MABX_IN_NO_ACTIVE_CHILD;
30797 L4_MABX_DW.temporalCounter_i1 = 0U;
30798 L4_MABX_DW.is_active_c6_SUB_L4_Task_10ms_S = 0U;
30799 L4_MABX_DW.is_c6_SUB_L4_Task_10ms_SUB_STAT = L4_MABX_IN_NO_ACTIVE_CHILD;
30800
30801 /* SystemInitialize for Chart: '<S276>/Chart' */
30802 L4_MABX_DW.is_active_c12_SUB_L4_Task_10ms_ = 0U;
30803 L4_MABX_DW.is_c12_SUB_L4_Task_10ms_SUB_STE = L4_MABX_IN_NO_ACTIVE_CHILD;
30804
30805 /* SystemInitialize for Enabled SubSystem: '<S276>/Slew_at_event' */
30806 /* InitializeConditions for UnitDelay: '<S323>/Unit_Delay' */
30807 L4_MABX_DW.Unit_Delay_DSTATE_bd = L4_MABX_P.Unit_Delay_InitialCondition_ls;
30808
30809 /* InitializeConditions for UnitDelay: '<S324>/Unit_Delay' */
30810 L4_MABX_DW.Unit_Delay_DSTATE_jt = L4_MABX_P.Unit_Delay_InitialCondition_i0;
30811
30812 /* InitializeConditions for UnitDelay: '<S327>/FixPt Unit Delay2' */
30813 L4_MABX_DW.FixPtUnitDelay2_DSTATE_ji =
30814 L4_MABX_P.FixPtUnitDelay2_InitialCondit_c;
30815
30816 /* InitializeConditions for UnitDelay: '<S327>/FixPt Unit Delay1' */
30817 L4_MABX_DW.FixPtUnitDelay1_DSTATE_o =
30818 L4_MABX_P.FixPtUnitDelay1_InitialCondit_f;
30819
30820 /* InitializeConditions for UnitDelay: '<S322>/Unit_Delay' */
30821 L4_MABX_DW.Unit_Delay_DSTATE_ll = L4_MABX_P.Unit_Delay_InitialCondition_ld;
30822
30823 /* SystemInitialize for Outport: '<S321>/F_Out_slewing' */
30824 L4_MABX_B.LogicalOperator_dm = L4_MABX_P.F_Out_slewing_Y0;
30825
30826 /* SystemInitialize for Outport: '<S321>/Out' */
30827 L4_MABX_B.If_Then_Else_n3.Switch = L4_MABX_P.Out_Y0;
30828
30829 /* End of SystemInitialize for SubSystem: '<S276>/Slew_at_event' */
30830 /* End of SystemInitialize for SubSystem: '<S65>/Task_10ms' */
30831
30832 /* SystemInitialize for Enabled SubSystem: '<S611>/PosRapidUpdate_011' */
30833 /* SystemInitialize for Outport: '<S612>/Latitude_' */
30834 L4_MABX_B.SFunction1_o1_jv = L4_MABX_P.Latitude_Y0;
30835
30836 /* SystemInitialize for Outport: '<S612>/Longitude_' */
30837 L4_MABX_B.SFunction1_o2_go = L4_MABX_P.Longitude_Y0;
30838
30839 /* SystemInitialize for Outport: '<S612>/RX status' */
30840 L4_MABX_B.SFunction1_o3_bb = L4_MABX_P.RXstatus_Y0_l2;
30841
30842 /* SystemInitialize for Outport: '<S612>/RX time' */
30843 L4_MABX_B.SFunction1_o4_d2 = L4_MABX_P.RXtime_Y0_iz;
30844
30845 /* SystemInitialize for Outport: '<S612>/RX delta time' */
30846 L4_MABX_B.SFunction1_o5_j1 = L4_MABX_P.RXdeltatime_Y0_mk;
30847
30848 /* End of SystemInitialize for SubSystem: '<S611>/PosRapidUpdate_011' */
30849
30850 /* SystemInitialize for Enabled SubSystem: '<S611>/PosRapidUpdate_1' */
30851 /* SystemInitialize for Outport: '<S613>/Latitude_' */
30852 L4_MABX_B.SFunction1_o1_p = L4_MABX_P.Latitude_Y0_i;
30853
30854 /* SystemInitialize for Outport: '<S613>/Longitude_' */
30855 L4_MABX_B.SFunction1_o2_b = L4_MABX_P.Longitude_Y0_c;
30856
30857 /* SystemInitialize for Outport: '<S613>/RX status' */
30858 L4_MABX_B.SFunction1_o3_cu = L4_MABX_P.RXstatus_Y0_ff;
30859
30860 /* SystemInitialize for Outport: '<S613>/RX time' */
30861 L4_MABX_B.SFunction1_o4_k = L4_MABX_P.RXtime_Y0_ef;
30862
30863 /* SystemInitialize for Outport: '<S613>/RX delta time' */
30864 L4_MABX_B.SFunction1_o5_j = L4_MABX_P.RXdeltatime_Y0_ld;
30865
30866 /* End of SystemInitialize for SubSystem: '<S611>/PosRapidUpdate_1' */
30867
30868 /* SystemInitialize for Enabled SubSystem: '<S491>/CCVS1_00' */
30869 /* SystemInitialize for Outport: '<S492>/TwoSpeedAxleSwitch' */
30870 L4_MABX_B.SFunction1_o1_g3 = L4_MABX_P.TwoSpeedAxleSwitch_Y0;
30871
30872 /* SystemInitialize for Outport: '<S492>/ParkingBrakeSwitch' */
30873 L4_MABX_B.SFunction1_o2_l2 = L4_MABX_P.ParkingBrakeSwitch_Y0;
30874
30875 /* SystemInitialize for Outport: '<S492>/CruiseCtrlPauseSwitch' */
30876 L4_MABX_B.SFunction1_o3_gw = L4_MABX_P.CruiseCtrlPauseSwitch_Y0;
30877
30878 /* SystemInitialize for Outport: '<S492>/ParkBrakeReleaseInhibitRq' */
30879 L4_MABX_B.SFunction1_o4_nw = L4_MABX_P.ParkBrakeReleaseInhibitRq_Y0;
30880
30881 /* SystemInitialize for Outport: '<S492>/WheelBasedVehicleSpeed' */
30882 WheelBasedVehicleSpeed = L4_MABX_P.WheelBasedVehicleSpeed_Y0;
30883
30884 /* SystemInitialize for Outport: '<S492>/CruiseCtrlActive' */
30885 L4_MABX_B.SFunction1_o6_fi = L4_MABX_P.CruiseCtrlActive_Y0;
30886
30887 /* SystemInitialize for Outport: '<S492>/CruiseCtrlEnableSwitch' */
30888 L4_MABX_B.SFunction1_o7_ng = L4_MABX_P.CruiseCtrlEnableSwitch_Y0;
30889
30890 /* SystemInitialize for Outport: '<S492>/BrakeSwitch' */
30891 BrakeSwitch = L4_MABX_P.BrakeSwitch_Y0;
30892
30893 /* SystemInitialize for Outport: '<S492>/ClutchSwitch' */
30894 L4_MABX_B.SFunction1_o9_f0 = L4_MABX_P.ClutchSwitch_Y0;
30895
30896 /* SystemInitialize for Outport: '<S492>/CruiseCtrlSetSwitch' */
30897 L4_MABX_B.SFunction1_o10_em = L4_MABX_P.CruiseCtrlSetSwitch_Y0;
30898
30899 /* SystemInitialize for Outport: '<S492>/CruiseCtrlCoastSwitch' */
30900 L4_MABX_B.SFunction1_o11_gw = L4_MABX_P.CruiseCtrlCoastSwitch_Y0;
30901
30902 /* SystemInitialize for Outport: '<S492>/CruiseCtrlResumeSwitch' */
30903 L4_MABX_B.SFunction1_o12_j = L4_MABX_P.CruiseCtrlResumeSwitch_Y0;
30904
30905 /* SystemInitialize for Outport: '<S492>/CruiseCtrlAccelerateSwitch' */
30906 L4_MABX_B.SFunction1_o13_o = L4_MABX_P.CruiseCtrlAccelerateSwitch_Y0;
30907
30908 /* SystemInitialize for Outport: '<S492>/CruiseCtrlSetSpeed' */
30909 L4_MABX_B.SFunction1_o14_nw = L4_MABX_P.CruiseCtrlSetSpeed_Y0;
30910
30911 /* SystemInitialize for Outport: '<S492>/PTOGovernorState' */
30912 L4_MABX_B.SFunction1_o15_h = L4_MABX_P.PTOGovernorState_Y0;
30913
30914 /* SystemInitialize for Outport: '<S492>/CruiseCtrlStates' */
30915 L4_MABX_B.SFunction1_o16_g = L4_MABX_P.CruiseCtrlStates_Y0;
30916
30917 /* SystemInitialize for Outport: '<S492>/EngIdleIncrementSwitch' */
30918 L4_MABX_B.SFunction1_o17_f = L4_MABX_P.EngIdleIncrementSwitch_Y0;
30919
30920 /* SystemInitialize for Outport: '<S492>/EngIdleDecrementSwitch' */
30921 L4_MABX_B.SFunction1_o18_d = L4_MABX_P.EngIdleDecrementSwitch_Y0;
30922
30923 /* SystemInitialize for Outport: '<S492>/EngTestModeSwitch' */
30924 L4_MABX_B.SFunction1_o19_m = L4_MABX_P.EngTestModeSwitch_Y0;
30925
30926 /* SystemInitialize for Outport: '<S492>/EngShutdownOverrideSwitch' */
30927 L4_MABX_B.SFunction1_o20_lk = L4_MABX_P.EngShutdownOverrideSwitch_Y0;
30928
30929 /* SystemInitialize for Outport: '<S492>/RX status' */
30930 L4_MABX_B.SFunction1_o21_n = L4_MABX_P.RXstatus_Y0_mk;
30931
30932 /* SystemInitialize for Outport: '<S492>/RX time' */
30933 L4_MABX_B.SFunction1_o22_a = L4_MABX_P.RXtime_Y0_o;
30934
30935 /* SystemInitialize for Outport: '<S492>/RX delta time' */
30936 L4_MABX_B.SFunction1_o23_n = L4_MABX_P.RXdeltatime_Y0_ob;
30937
30938 /* End of SystemInitialize for SubSystem: '<S491>/CCVS1_00' */
30939
30940 /* SystemInitialize for Enabled SubSystem: '<S495>/COGSOGRapidUpdate_00' */
30941 /* SystemInitialize for Outport: '<S496>/SID' */
30942 L4_MABX_B.SFunction1_o1_mp = L4_MABX_P.SID_Y0;
30943
30944 /* SystemInitialize for Outport: '<S496>/COGReference' */
30945 L4_MABX_B.SFunction1_o2_ghu = L4_MABX_P.COGReference_Y0;
30946
30947 /* SystemInitialize for Outport: '<S496>/CourseOverGround' */
30948 L4_MABX_B.SFunction1_o3_fl = L4_MABX_P.CourseOverGround_Y0;
30949
30950 /* SystemInitialize for Outport: '<S496>/SpeedOverGround' */
30951 L4_MABX_B.SFunction1_o4_b = L4_MABX_P.SpeedOverGround_Y0;
30952
30953 /* SystemInitialize for Outport: '<S496>/RX status' */
30954 L4_MABX_B.SFunction1_o5_lj = L4_MABX_P.RXstatus_Y0_kj;
30955
30956 /* SystemInitialize for Outport: '<S496>/RX time' */
30957 L4_MABX_B.SFunction1_o6_fh = L4_MABX_P.RXtime_Y0_f;
30958
30959 /* SystemInitialize for Outport: '<S496>/RX delta time' */
30960 L4_MABX_B.SFunction1_o7_a = L4_MABX_P.RXdeltatime_Y0_a;
30961
30962 /* End of SystemInitialize for SubSystem: '<S495>/COGSOGRapidUpdate_00' */
30963
30964 /* SystemInitialize for Enabled SubSystem: '<S495>/COGSOGRapidUpdate_1' */
30965 /* SystemInitialize for Outport: '<S497>/SID' */
30966 L4_MABX_B.SFunction1_o1_ko = L4_MABX_P.SID_Y0_b;
30967
30968 /* SystemInitialize for Outport: '<S497>/COGReference' */
30969 L4_MABX_B.SFunction1_o2_c3 = L4_MABX_P.COGReference_Y0_a;
30970
30971 /* SystemInitialize for Outport: '<S497>/CourseOverGround' */
30972 L4_MABX_B.SFunction1_o3_cq = L4_MABX_P.CourseOverGround_Y0_i;
30973
30974 /* SystemInitialize for Outport: '<S497>/SpeedOverGround' */
30975 L4_MABX_B.SFunction1_o4_fx = L4_MABX_P.SpeedOverGround_Y0_b;
30976
30977 /* SystemInitialize for Outport: '<S497>/RX status' */
30978 L4_MABX_B.SFunction1_o5_hd = L4_MABX_P.RXstatus_Y0_o;
30979
30980 /* SystemInitialize for Outport: '<S497>/RX time' */
30981 L4_MABX_B.SFunction1_o6_est = L4_MABX_P.RXtime_Y0_a4;
30982
30983 /* SystemInitialize for Outport: '<S497>/RX delta time' */
30984 L4_MABX_B.SFunction1_o7_m = L4_MABX_P.RXdeltatime_Y0_d;
30985
30986 /* End of SystemInitialize for SubSystem: '<S495>/COGSOGRapidUpdate_1' */
30987
30988 /* SystemInitialize for Atomic SubSystem: '<S815>/CAN_TX_100ms' */
30989 /* SystemInitialize for Enabled SubSystem: '<S852>/Rolling_15_counter' */
30990 /* InitializeConditions for UnitDelay: '<S894>/Unit_Delay' */
30991 L4_MABX_DW.Unit_Delay_DSTATE = L4_MABX_P.Unit_Delay_InitialCondition_gn;
30992
30993 /* SystemInitialize for Outport: '<S894>/Rolling_15_counter' */
30994 L4_MABX_B.Unit_Delay = L4_MABX_P.Rolling_15_counter_Y0;
30995
30996 /* End of SystemInitialize for SubSystem: '<S852>/Rolling_15_counter' */
30997
30998 /* SystemInitialize for Enabled SubSystem: '<S874>/PropB_XPR_FC' */
30999 /* SystemInitialize for Outport: '<S876>/TX status' */
31000 L4_MABX_B.SFunction1_o1_l = L4_MABX_P.TXstatus_Y0_f;
31001
31002 /* SystemInitialize for Outport: '<S876>/TX time' */
31003 L4_MABX_B.SFunction1_o2_lm = L4_MABX_P.TXtime_Y0_n;
31004
31005 /* SystemInitialize for Outport: '<S876>/TX delta time' */
31006 L4_MABX_B.SFunction1_o3_ph = L4_MABX_P.TXdeltatime_Y0_a;
31007
31008 /* SystemInitialize for Outport: '<S876>/TX delay time' */
31009 L4_MABX_B.SFunction1_o4_hs = L4_MABX_P.TXdelaytime_Y0_e;
31010
31011 /* End of SystemInitialize for SubSystem: '<S874>/PropB_XPR_FC' */
31012
31013 /* SystemInitialize for Enabled SubSystem: '<S875>/PropB_XPR_FC' */
31014 /* SystemInitialize for Outport: '<S877>/TX status' */
31015 L4_MABX_B.SFunction1_o1_oj = L4_MABX_P.TXstatus_Y0_fh;
31016
31017 /* SystemInitialize for Outport: '<S877>/TX time' */
31018 L4_MABX_B.SFunction1_o2_mc = L4_MABX_P.TXtime_Y0_g;
31019
31020 /* SystemInitialize for Outport: '<S877>/TX delta time' */
31021 L4_MABX_B.SFunction1_o3_d = L4_MABX_P.TXdeltatime_Y0_a5;
31022
31023 /* SystemInitialize for Outport: '<S877>/TX delay time' */
31024 L4_MABX_B.SFunction1_o4_di = L4_MABX_P.TXdelaytime_Y0_j;
31025
31026 /* End of SystemInitialize for SubSystem: '<S875>/PropB_XPR_FC' */
31027
31028 /* SystemInitialize for Enabled SubSystem: '<S904>/Std_PosRapidUpdate_01' */
31029 /* SystemInitialize for Outport: '<S905>/TX status' */
31030 L4_MABX_B.SFunction1_o1_fm = L4_MABX_P.TXstatus_Y0_p;
31031
31032 /* SystemInitialize for Outport: '<S905>/TX time' */
31033 L4_MABX_B.SFunction1_o2_pa = L4_MABX_P.TXtime_Y0_i;
31034
31035 /* SystemInitialize for Outport: '<S905>/TX delta time' */
31036 L4_MABX_B.SFunction1_o3_kn = L4_MABX_P.TXdeltatime_Y0_p;
31037
31038 /* SystemInitialize for Outport: '<S905>/TX delay time' */
31039 L4_MABX_B.SFunction1_o4_eb = L4_MABX_P.TXdelaytime_Y0_gk;
31040
31041 /* End of SystemInitialize for SubSystem: '<S904>/Std_PosRapidUpdate_01' */
31042
31043 /* SystemInitialize for Enabled SubSystem: '<S854>/CCVS1_00' */
31044 /* SystemInitialize for Outport: '<S856>/TX status' */
31045 L4_MABX_B.SFunction1_o1_ex = L4_MABX_P.TXstatus_Y0_k;
31046
31047 /* SystemInitialize for Outport: '<S856>/TX time' */
31048 L4_MABX_B.SFunction1_o2_lx = L4_MABX_P.TXtime_Y0_h;
31049
31050 /* SystemInitialize for Outport: '<S856>/TX delta time' */
31051 L4_MABX_B.SFunction1_o3_ax = L4_MABX_P.TXdeltatime_Y0_j;
31052
31053 /* SystemInitialize for Outport: '<S856>/TX delay time' */
31054 L4_MABX_B.SFunction1_o4_ci = L4_MABX_P.TXdelaytime_Y0_n;
31055
31056 /* End of SystemInitialize for SubSystem: '<S854>/CCVS1_00' */
31057
31058 /* SystemInitialize for Enabled SubSystem: '<S855>/CCVS1_00' */
31059 /* SystemInitialize for Outport: '<S857>/TX status' */
31060 L4_MABX_B.SFunction1_o1_ip = L4_MABX_P.TXstatus_Y0_iw;
31061
31062 /* SystemInitialize for Outport: '<S857>/TX time' */
31063 L4_MABX_B.SFunction1_o2_k = L4_MABX_P.TXtime_Y0_he;
31064
31065 /* SystemInitialize for Outport: '<S857>/TX delta time' */
31066 L4_MABX_B.SFunction1_o3_h = L4_MABX_P.TXdeltatime_Y0_h;
31067
31068 /* SystemInitialize for Outport: '<S857>/TX delay time' */
31069 L4_MABX_B.SFunction1_o4_pe = L4_MABX_P.TXdelaytime_Y0_i;
31070
31071 /* End of SystemInitialize for SubSystem: '<S855>/CCVS1_00' */
31072
31073 /* SystemInitialize for Enabled SubSystem: '<S858>/PropB_REAX_5_E4' */
31074 /* SystemInitialize for Outport: '<S860>/TX status' */
31075 L4_MABX_B.SFunction1_o1_d5 = L4_MABX_P.TXstatus_Y0_a;
31076
31077 /* SystemInitialize for Outport: '<S860>/TX time' */
31078 L4_MABX_B.SFunction1_o2_nr = L4_MABX_P.TXtime_Y0_b;
31079
31080 /* SystemInitialize for Outport: '<S860>/TX delta time' */
31081 L4_MABX_B.SFunction1_o3_aa = L4_MABX_P.TXdeltatime_Y0_c;
31082
31083 /* SystemInitialize for Outport: '<S860>/TX delay time' */
31084 L4_MABX_B.SFunction1_o4_a4 = L4_MABX_P.TXdelaytime_Y0_g;
31085
31086 /* End of SystemInitialize for SubSystem: '<S858>/PropB_REAX_5_E4' */
31087
31088 /* SystemInitialize for Enabled SubSystem: '<S859>/PropB_REAX_5_E4' */
31089 /* SystemInitialize for Outport: '<S861>/TX status' */
31090 L4_MABX_B.SFunction1_o1_c = L4_MABX_P.TXstatus_Y0_o;
31091
31092 /* SystemInitialize for Outport: '<S861>/TX time' */
31093 L4_MABX_B.SFunction1_o2_jv = L4_MABX_P.TXtime_Y0_e;
31094
31095 /* SystemInitialize for Outport: '<S861>/TX delta time' */
31096 L4_MABX_B.SFunction1_o3_e = L4_MABX_P.TXdeltatime_Y0_is;
31097
31098 /* SystemInitialize for Outport: '<S861>/TX delay time' */
31099 L4_MABX_B.SFunction1_o4_e2 = L4_MABX_P.TXdelaytime_Y0_l;
31100
31101 /* End of SystemInitialize for SubSystem: '<S859>/PropB_REAX_5_E4' */
31102
31103 /* SystemInitialize for Enabled SubSystem: '<S878>/Std_COGSOGRapidUpdate_01' */
31104 /* SystemInitialize for Outport: '<S879>/TX status' */
31105 L4_MABX_B.SFunction1_o1_b2 = L4_MABX_P.TXstatus_Y0_g;
31106
31107 /* SystemInitialize for Outport: '<S879>/TX time' */
31108 L4_MABX_B.SFunction1_o2_it = L4_MABX_P.TXtime_Y0_f;
31109
31110 /* SystemInitialize for Outport: '<S879>/TX delta time' */
31111 L4_MABX_B.SFunction1_o3_pz = L4_MABX_P.TXdeltatime_Y0_jz;
31112
31113 /* SystemInitialize for Outport: '<S879>/TX delay time' */
31114 L4_MABX_B.SFunction1_o4_gy = L4_MABX_P.TXdelaytime_Y0_k;
31115
31116 /* End of SystemInitialize for SubSystem: '<S878>/Std_COGSOGRapidUpdate_01' */
31117
31118 /* SystemInitialize for Enabled SubSystem: '<S880>/EBC1_TX' */
31119 /* SystemInitialize for Outport: '<S881>/TX status' */
31120 L4_MABX_B.SFunction1_o1_jj = L4_MABX_P.TXstatus_Y0_ge;
31121
31122 /* SystemInitialize for Outport: '<S881>/TX time' */
31123 L4_MABX_B.SFunction1_o2_n = L4_MABX_P.TXtime_Y0_bu;
31124
31125 /* SystemInitialize for Outport: '<S881>/TX delta time' */
31126 L4_MABX_B.SFunction1_o3_jr = L4_MABX_P.TXdeltatime_Y0_aa;
31127
31128 /* SystemInitialize for Outport: '<S881>/TX delay time' */
31129 L4_MABX_B.SFunction1_o4_aoa = L4_MABX_P.TXdelaytime_Y0_ew;
31130
31131 /* End of SystemInitialize for SubSystem: '<S880>/EBC1_TX' */
31132 /* End of SystemInitialize for SubSystem: '<S815>/CAN_TX_100ms' */
31133
31134 /* SystemInitialize for Atomic SubSystem: '<S815>/CAN_TX_10ms' */
31135 /* InitializeConditions for UnitDelay: '<S972>/Unit_Delay' */
31136 L4_MABX_DW.Unit_Delay_DSTATE_ia = L4_MABX_P.Unit_Delay_InitialCondition_nd;
31137
31138 /* InitializeConditions for UnitDelay: '<S973>/Unit Delay' */
31139 L4_MABX_DW.UnitDelay_DSTATE_a = L4_MABX_P.UnitDelay_InitialCondition_ey;
31140
31141 /* SystemInitialize for Enabled SubSystem: '<S917>/ACCS' */
31142 /* SystemInitialize for Outport: '<S918>/TX status' */
31143 L4_MABX_B.SFunction1_o1_fo = L4_MABX_P.TXstatus_Y0_b;
31144
31145 /* SystemInitialize for Outport: '<S918>/TX time' */
31146 L4_MABX_B.SFunction1_o2_dw = L4_MABX_P.TXtime_Y0_pz;
31147
31148 /* SystemInitialize for Outport: '<S918>/TX delta time' */
31149 L4_MABX_B.SFunction1_o3_o5 = L4_MABX_P.TXdeltatime_Y0_n;
31150
31151 /* SystemInitialize for Outport: '<S918>/TX delay time' */
31152 L4_MABX_B.SFunction1_o4_n = L4_MABX_P.TXdelaytime_Y0_no;
31153
31154 /* End of SystemInitialize for SubSystem: '<S917>/ACCS' */
31155
31156 /* SystemInitialize for Enabled SubSystem: '<S925>/EEC1_00' */
31157 /* SystemInitialize for Outport: '<S927>/TX status' */
31158 L4_MABX_B.SFunction1_o1_jg = L4_MABX_P.TXstatus_Y0_kd;
31159
31160 /* SystemInitialize for Outport: '<S927>/TX time' */
31161 L4_MABX_B.SFunction1_o2_gv = L4_MABX_P.TXtime_Y0_l;
31162
31163 /* SystemInitialize for Outport: '<S927>/TX delta time' */
31164 L4_MABX_B.SFunction1_o3_a = L4_MABX_P.TXdeltatime_Y0_g;
31165
31166 /* SystemInitialize for Outport: '<S927>/TX delay time' */
31167 L4_MABX_B.SFunction1_o4_eo = L4_MABX_P.TXdelaytime_Y0_o;
31168
31169 /* End of SystemInitialize for SubSystem: '<S925>/EEC1_00' */
31170
31171 /* SystemInitialize for Enabled SubSystem: '<S926>/EEC1_00' */
31172 /* SystemInitialize for Outport: '<S928>/TX status' */
31173 L4_MABX_B.SFunction1_o1_j = L4_MABX_P.TXstatus_Y0_n;
31174
31175 /* SystemInitialize for Outport: '<S928>/TX time' */
31176 L4_MABX_B.SFunction1_o2_op = L4_MABX_P.TXtime_Y0_g5;
31177
31178 /* SystemInitialize for Outport: '<S928>/TX delta time' */
31179 L4_MABX_B.SFunction1_o3_c2 = L4_MABX_P.TXdeltatime_Y0_aq;
31180
31181 /* SystemInitialize for Outport: '<S928>/TX delay time' */
31182 L4_MABX_B.SFunction1_o4_db = L4_MABX_P.TXdelaytime_Y0_p;
31183
31184 /* End of SystemInitialize for SubSystem: '<S926>/EEC1_00' */
31185
31186 /* SystemInitialize for Merge: '<S943>/Merge' */
31187 L4_MABX_B.Merge = L4_MABX_P.Merge_InitialOutput;
31188
31189 /* SystemInitialize for Enabled SubSystem: '<S929>/PropB_REAX_1_E4' */
31190 /* SystemInitialize for Outport: '<S931>/TX status' */
31191 L4_MABX_B.SFunction1_o1_o = L4_MABX_P.TXstatus_Y0_c;
31192
31193 /* SystemInitialize for Outport: '<S931>/TX time' */
31194 L4_MABX_B.SFunction1_o2_g = L4_MABX_P.TXtime_Y0_if;
31195
31196 /* SystemInitialize for Outport: '<S931>/TX delta time' */
31197 L4_MABX_B.SFunction1_o3_o = L4_MABX_P.TXdeltatime_Y0_hh;
31198
31199 /* SystemInitialize for Outport: '<S931>/TX delay time' */
31200 L4_MABX_B.SFunction1_o4_de = L4_MABX_P.TXdelaytime_Y0_k3;
31201
31202 /* End of SystemInitialize for SubSystem: '<S929>/PropB_REAX_1_E4' */
31203
31204 /* SystemInitialize for Enabled SubSystem: '<S930>/PropB_REAX_1_E4' */
31205 /* SystemInitialize for Outport: '<S932>/TX status' */
31206 L4_MABX_B.SFunction1_o1_gn = L4_MABX_P.TXstatus_Y0_bv;
31207
31208 /* SystemInitialize for Outport: '<S932>/TX time' */
31209 L4_MABX_B.SFunction1_o2_jo = L4_MABX_P.TXtime_Y0_iu;
31210
31211 /* SystemInitialize for Outport: '<S932>/TX delta time' */
31212 L4_MABX_B.SFunction1_o3_cr = L4_MABX_P.TXdeltatime_Y0_e;
31213
31214 /* SystemInitialize for Outport: '<S932>/TX delay time' */
31215 L4_MABX_B.SFunction1_o4_g = L4_MABX_P.TXdelaytime_Y0_jd;
31216
31217 /* End of SystemInitialize for SubSystem: '<S930>/PropB_REAX_1_E4' */
31218
31219 /* SystemInitialize for Enabled SubSystem: '<S939>/VDC2_0B' */
31220 /* SystemInitialize for Outport: '<S940>/TX status' */
31221 L4_MABX_B.SFunction1_o1_h = L4_MABX_P.TXstatus_Y0_im;
31222
31223 /* SystemInitialize for Outport: '<S940>/TX time' */
31224 L4_MABX_B.SFunction1_o2_m5 = L4_MABX_P.TXtime_Y0_fh;
31225
31226 /* SystemInitialize for Outport: '<S940>/TX delta time' */
31227 L4_MABX_B.SFunction1_o3_m = L4_MABX_P.TXdeltatime_Y0_gz;
31228
31229 /* SystemInitialize for Outport: '<S940>/TX delay time' */
31230 L4_MABX_B.SFunction1_o4_ao = L4_MABX_P.TXdelaytime_Y0_n4;
31231
31232 /* End of SystemInitialize for SubSystem: '<S939>/VDC2_0B' */
31233 /* End of SystemInitialize for SubSystem: '<S815>/CAN_TX_10ms' */
31234
31235 /* SystemInitialize for Atomic SubSystem: '<S815>/CAN_TX_20ms' */
31236 /* InitializeConditions for UnitDelay: '<S977>/Unit_Delay' */
31237 L4_MABX_DW.Unit_Delay_DSTATE_ki = L4_MABX_P.Unit_Delay_InitialCondition_nb;
31238
31239 /* InitializeConditions for UnitDelay: '<S1000>/Unit_Delay' */
31240 L4_MABX_DW.Unit_Delay_DSTATE_px = L4_MABX_P.Unit_Delay_InitialCondition_eq;
31241
31242 /* InitializeConditions for UnitDelay: '<S1001>/Unit Delay' */
31243 L4_MABX_DW.UnitDelay_DSTATE_es = L4_MABX_P.UnitDelay_InitialCondition_ll;
31244
31245 /* SystemInitialize for Enabled SubSystem: '<S984>/PropB_XBR_B3' */
31246 /* SystemInitialize for Outport: '<S985>/TX status' */
31247 L4_MABX_B.SFunction1_o1_ea = L4_MABX_P.TXstatus_Y0_oh;
31248
31249 /* SystemInitialize for Outport: '<S985>/TX time' */
31250 L4_MABX_B.SFunction1_o2_me = L4_MABX_P.TXtime_Y0_h5;
31251
31252 /* SystemInitialize for Outport: '<S985>/TX delta time' */
31253 L4_MABX_B.SFunction1_o3_ja = L4_MABX_P.TXdeltatime_Y0_b;
31254
31255 /* SystemInitialize for Outport: '<S985>/TX delay time' */
31256 L4_MABX_B.SFunction1_o4_a = L4_MABX_P.TXdelaytime_Y0_m;
31257
31258 /* End of SystemInitialize for SubSystem: '<S984>/PropB_XBR_B3' */
31259
31260 /* SystemInitialize for Enabled SubSystem: '<S986>/PropB_Bendix_2C2_XPR' */
31261 /* SystemInitialize for Outport: '<S987>/TX status' */
31262 L4_MABX_B.SFunction1_o1_gq = L4_MABX_P.TXstatus_Y0_nh;
31263
31264 /* SystemInitialize for Outport: '<S987>/TX time' */
31265 L4_MABX_B.SFunction1_o2_j = L4_MABX_P.TXtime_Y0_nu;
31266
31267 /* SystemInitialize for Outport: '<S987>/TX delta time' */
31268 L4_MABX_B.SFunction1_o3_p = L4_MABX_P.TXdeltatime_Y0_io;
31269
31270 /* SystemInitialize for Outport: '<S987>/TX delay time' */
31271 L4_MABX_B.SFunction1_o4_e = L4_MABX_P.TXdelaytime_Y0_cy;
31272
31273 /* End of SystemInitialize for SubSystem: '<S986>/PropB_Bendix_2C2_XPR' */
31274
31275 /* SystemInitialize for Enabled SubSystem: '<S994>/Std_OdometryData' */
31276 /* SystemInitialize for Outport: '<S995>/TX status' */
31277 L4_MABX_B.SFunction1_o1_ge = L4_MABX_P.TXstatus_Y0_a2;
31278
31279 /* SystemInitialize for Outport: '<S995>/TX time' */
31280 L4_MABX_B.SFunction1_o2_e = L4_MABX_P.TXtime_Y0_n3;
31281
31282 /* SystemInitialize for Outport: '<S995>/TX delta time' */
31283 L4_MABX_B.SFunction1_o3_i = L4_MABX_P.TXdeltatime_Y0_be;
31284
31285 /* SystemInitialize for Outport: '<S995>/TX delay time' */
31286 L4_MABX_B.SFunction1_o4_h = L4_MABX_P.TXdelaytime_Y0_a;
31287
31288 /* End of SystemInitialize for SubSystem: '<S994>/Std_OdometryData' */
31289 /* End of SystemInitialize for SubSystem: '<S815>/CAN_TX_20ms' */
31290
31291 /* SystemInitialize for Atomic SubSystem: '<S815>/CAN_TX_5000ms' */
31292 /* InitializeConditions for UnitDelay: '<S1015>/Unit_Delay' */
31293 L4_MABX_DW.Unit_Delay_DSTATE_l = L4_MABX_P.Unit_Delay_InitialCondition_p5;
31294
31295 /* InitializeConditions for UnitDelay: '<S1016>/Unit Delay' */
31296 L4_MABX_DW.UnitDelay_DSTATE_n = L4_MABX_P.UnitDelay_InitialCondition_f;
31297
31298 /* SystemInitialize for Enabled SubSystem: '<S1009>/RQST_13_E4' */
31299 /* SystemInitialize for Outport: '<S1011>/TX status' */
31300 L4_MABX_B.SFunction1_o1_a = L4_MABX_P.TXstatus_Y0_j;
31301
31302 /* SystemInitialize for Outport: '<S1011>/TX time' */
31303 L4_MABX_B.SFunction1_o2_i = L4_MABX_P.TXtime_Y0_m;
31304
31305 /* SystemInitialize for Outport: '<S1011>/TX delta time' */
31306 L4_MABX_B.SFunction1_o3_k = L4_MABX_P.TXdeltatime_Y0_o;
31307
31308 /* SystemInitialize for Outport: '<S1011>/TX delay time' */
31309 L4_MABX_B.SFunction1_o4_d = L4_MABX_P.TXdelaytime_Y0_b;
31310
31311 /* End of SystemInitialize for SubSystem: '<S1009>/RQST_13_E4' */
31312 /* End of SystemInitialize for SubSystem: '<S815>/CAN_TX_5000ms' */
31313
31314 /* SystemInitialize for Enabled SubSystem: '<S626>/TC1_03_05' */
31315 /* SystemInitialize for Outport: '<S627>/SPN681_TransGearShiftInhibitReq' */
31316 L4_MABX_B.SFunction1_o1_ln = L4_MABX_P.SPN681_TransGearShiftInhibitReq;
31317
31318 /* SystemInitialize for Outport: '<S627>/SPN682_TransTrqConvLockupDisReq' */
31319 L4_MABX_B.SFunction1_o2_cu = L4_MABX_P.SPN682_TransTrqConvLockupDisReq;
31320
31321 /* SystemInitialize for Outport: '<S627>/SPN683_DisengageDrivelineReq' */
31322 L4_MABX_B.SFunction1_o3_ck = L4_MABX_P.SPN683_DisengageDrivelineReq_Y0;
31323
31324 /* SystemInitialize for Outport: '<S627>/SPN4242_TransRevGearShiftInhibRq' */
31325 L4_MABX_B.SFunction1_o4_mjq = L4_MABX_P.SPN4242_TransRevGearShiftInhibR;
31326
31327 /* SystemInitialize for Outport: '<S627>/SPN684_RequestedPercClutchSlip' */
31328 L4_MABX_B.SFunction1_o5_ma = L4_MABX_P.SPN684_RequestedPercClutchSlip_;
31329
31330 /* SystemInitialize for Outport: '<S627>/SPN525_TransRequestedGear' */
31331 L4_MABX_B.SFunction1_o6_n = L4_MABX_P.SPN525_TransRequestedGear_Y0;
31332
31333 /* SystemInitialize for Outport: '<S627>/SPN685_DisengageDiffLockRqFrAx1' */
31334 L4_MABX_B.SFunction1_o7_gi = L4_MABX_P.SPN685_DisengageDiffLockRqFrAx1;
31335
31336 /* SystemInitialize for Outport: '<S627>/SPN686_DisengageDiffLockRqFrAx2' */
31337 L4_MABX_B.SFunction1_o8_k = L4_MABX_P.SPN686_DisengageDiffLockRqFrAx2;
31338
31339 /* SystemInitialize for Outport: '<S627>/SPN687_DisengageDiffLockRqRrAx1' */
31340 L4_MABX_B.SFunction1_o9_o = L4_MABX_P.SPN687_DisengageDiffLockRqRrAx1;
31341
31342 /* SystemInitialize for Outport: '<S627>/SPN688_DisengageDiffLockRqRrAx2' */
31343 L4_MABX_B.SFunction1_o10_f = L4_MABX_P.SPN688_DisengageDiffLockRqRrAx2;
31344
31345 /* SystemInitialize for Outport: '<S627>/SPN689_DisengageDiffLockRqC' */
31346 L4_MABX_B.SFunction1_o11 = L4_MABX_P.SPN689_DisengageDiffLockRqC_Y0;
31347
31348 /* SystemInitialize for Outport: '<S627>/SPN690_DisengageDiffLockRqCF' */
31349 L4_MABX_B.SFunction1_o12 = L4_MABX_P.SPN690_DisengageDiffLockRqCF_Y0;
31350
31351 /* SystemInitialize for Outport: '<S627>/SPN691_DisengageDiffLockRqCR' */
31352 L4_MABX_B.SFunction1_o13 = L4_MABX_P.SPN691_DisengageDiffLockRqCR_Y0;
31353
31354 /* SystemInitialize for Outport: '<S627>/SPN5762_TransLoadRedInhibitRq' */
31355 L4_MABX_B.SFunction1_o14 = L4_MABX_P.SPN5762_TransLoadRedInhibitRq_Y;
31356
31357 /* SystemInitialize for Outport: '<S627>/SPN1852_TransmissionMode1' */
31358 L4_MABX_B.SFunction1_o15 = L4_MABX_P.SPN1852_TransmissionMode1_Y0;
31359
31360 /* SystemInitialize for Outport: '<S627>/SPN1853_TransmissionMode2' */
31361 L4_MABX_B.SFunction1_o16 = L4_MABX_P.SPN1853_TransmissionMode2_Y0;
31362
31363 /* SystemInitialize for Outport: '<S627>/SPN1854_TransmissionMode3' */
31364 L4_MABX_B.SFunction1_o17 = L4_MABX_P.SPN1854_TransmissionMode3_Y0;
31365
31366 /* SystemInitialize for Outport: '<S627>/SPN1855_TransmissionMode4' */
31367 L4_MABX_B.SFunction1_o18 = L4_MABX_P.SPN1855_TransmissionMode4_Y0;
31368
31369 /* SystemInitialize for Outport: '<S627>/SPN7695_TransAutoNeutralRequest' */
31370 L4_MABX_B.SFunction1_o19 = L4_MABX_P.SPN7695_TransAutoNeutralRequest;
31371
31372 /* SystemInitialize for Outport: '<S627>/SPN4255_TransRequestedLaunchGear' */
31373 L4_MABX_B.SFunction1_o20 = L4_MABX_P.SPN4255_TransRequestedLaunchGea;
31374
31375 /* SystemInitialize for Outport: '<S627>/SPN2985_TransShiftSelDispModeSw' */
31376 L4_MABX_B.SFunction1_o21 = L4_MABX_P.SPN2985_TransShiftSelDispModeSw;
31377
31378 /* SystemInitialize for Outport: '<S627>/SPN4246_TransmissionMode5' */
31379 L4_MABX_B.SFunction1_o22 = L4_MABX_P.SPN4246_TransmissionMode5_Y0;
31380
31381 /* SystemInitialize for Outport: '<S627>/SPN4247_TransmissionMode6' */
31382 L4_MABX_B.SFunction1_o23 = L4_MABX_P.SPN4247_TransmissionMode6_Y0;
31383
31384 /* SystemInitialize for Outport: '<S627>/SPN4248_TransmissionMode7' */
31385 L4_MABX_B.SFunction1_o24 = L4_MABX_P.SPN4248_TransmissionMode7_Y0;
31386
31387 /* SystemInitialize for Outport: '<S627>/SPN4249_TransmissionMode8' */
31388 L4_MABX_B.SFunction1_o25 = L4_MABX_P.SPN4249_TransmissionMode8_Y0;
31389
31390 /* SystemInitialize for Outport: '<S627>/RX status' */
31391 L4_MABX_B.SFunction1_o26 = L4_MABX_P.RXstatus_Y0_gvd;
31392
31393 /* SystemInitialize for Outport: '<S627>/RX time' */
31394 L4_MABX_B.SFunction1_o27 = L4_MABX_P.RXtime_Y0_hc;
31395
31396 /* SystemInitialize for Outport: '<S627>/RX delta time' */
31397 L4_MABX_B.SFunction1_o28 = L4_MABX_P.RXdeltatime_Y0_lz;
31398
31399 /* End of SystemInitialize for SubSystem: '<S626>/TC1_03_05' */
31400
31401 /* SystemInitialize for Atomic SubSystem: '<S815>/CAN_TX_50ms' */
31402 /* SystemInitialize for Enabled SubSystem: '<S1020>/CCVS1_E3' */
31403 /* SystemInitialize for Outport: '<S1022>/TX status' */
31404 L4_MABX_B.SFunction1_o1_m = L4_MABX_P.TXstatus_Y0_e;
31405
31406 /* SystemInitialize for Outport: '<S1022>/TX time' */
31407 L4_MABX_B.SFunction1_o2_c = L4_MABX_P.TXtime_Y0_o;
31408
31409 /* SystemInitialize for Outport: '<S1022>/TX delta time' */
31410 L4_MABX_B.SFunction1_o3_g2 = L4_MABX_P.TXdeltatime_Y0_m;
31411
31412 /* SystemInitialize for Outport: '<S1022>/TX delay time' */
31413 L4_MABX_B.SFunction1_o4_mj = L4_MABX_P.TXdelaytime_Y0_ia;
31414
31415 /* End of SystemInitialize for SubSystem: '<S1020>/CCVS1_E3' */
31416
31417 /* SystemInitialize for Enabled SubSystem: '<S1021>/TC1_03_05' */
31418 /* SystemInitialize for Outport: '<S1023>/TX status' */
31419 L4_MABX_B.SFunction1_o1_d = L4_MABX_P.TXstatus_Y0_gn;
31420
31421 /* SystemInitialize for Outport: '<S1023>/TX time' */
31422 L4_MABX_B.SFunction1_o2_m = L4_MABX_P.TXtime_Y0_o3;
31423
31424 /* SystemInitialize for Outport: '<S1023>/TX delta time' */
31425 L4_MABX_B.SFunction1_o3_j = L4_MABX_P.TXdeltatime_Y0_d;
31426
31427 /* SystemInitialize for Outport: '<S1023>/TX delay time' */
31428 L4_MABX_B.SFunction1_o4_m = L4_MABX_P.TXdelaytime_Y0_n5;
31429
31430 /* End of SystemInitialize for SubSystem: '<S1021>/TC1_03_05' */
31431 /* End of SystemInitialize for SubSystem: '<S815>/CAN_TX_50ms' */
31432
31433 /* SystemInitialize for Enabled SubSystem: '<S624>/SystemTime_01' */
31434 /* SystemInitialize for Outport: '<S625>/SID' */
31435 L4_MABX_B.SFunction1_o1_j4 = L4_MABX_P.SID_Y0_l;
31436
31437 /* SystemInitialize for Outport: '<S625>/Source' */
31438 L4_MABX_B.SFunction1_o2_gh = L4_MABX_P.Source_Y0;
31439
31440 /* SystemInitialize for Outport: '<S625>/Date' */
31441 L4_MABX_B.SFunction1_o3_kg = L4_MABX_P.Date_Y0;
31442
31443 /* SystemInitialize for Outport: '<S625>/Time' */
31444 L4_MABX_B.SFunction1_o4_cb = L4_MABX_P.Time_Y0;
31445
31446 /* SystemInitialize for Outport: '<S625>/RX status' */
31447 L4_MABX_B.SFunction1_o5_f = L4_MABX_P.RXstatus_Y0_e;
31448
31449 /* SystemInitialize for Outport: '<S625>/RX time' */
31450 L4_MABX_B.SFunction1_o6_i = L4_MABX_P.RXtime_Y0_b5;
31451
31452 /* SystemInitialize for Outport: '<S625>/RX delta time' */
31453 L4_MABX_B.SFunction1_o7_d = L4_MABX_P.RXdeltatime_Y0_lf;
31454
31455 /* End of SystemInitialize for SubSystem: '<S624>/SystemTime_01' */
31456
31457 /* SystemInitialize for Enabled SubSystem: '<S1033>/Std_SystemTime_01' */
31458 /* SystemInitialize for Outport: '<S1035>/TX status' */
31459 L4_MABX_B.SFunction1_o1_b = L4_MABX_P.TXstatus_Y0_bk;
31460
31461 /* SystemInitialize for Outport: '<S1035>/TX time' */
31462 L4_MABX_B.SFunction1_o2_p = L4_MABX_P.TXtime_Y0_ii;
31463
31464 /* SystemInitialize for Outport: '<S1035>/TX delta time' */
31465 L4_MABX_B.SFunction1_o3 = L4_MABX_P.TXdeltatime_Y0_ht;
31466
31467 /* SystemInitialize for Outport: '<S1035>/TX delay time' */
31468 L4_MABX_B.SFunction1_o4 = L4_MABX_P.TXdelaytime_Y0_if;
31469
31470 /* End of SystemInitialize for SubSystem: '<S1033>/Std_SystemTime_01' */
31471
31472 /* SystemInitialize for Triggered SubSystem: '<S1028>/CAN_TYPE1_TX_M1_C1' */
31473 /* SystemInitialize for Outport: '<S1030>/TX status' */
31474 L4_MABX_B.SFunction1_o1_e = L4_MABX_P.TXstatus_Y0_j2;
31475
31476 /* SystemInitialize for Outport: '<S1030>/TX time' */
31477 L4_MABX_B.SFunction1_o2_o = L4_MABX_P.TXtime_Y0_py;
31478
31479 /* SystemInitialize for Outport: '<S1030>/TX delta time' */
31480 L4_MABX_B.SFunction1_o3_g = L4_MABX_P.TXdeltatime_Y0_jk;
31481
31482 /* SystemInitialize for Outport: '<S1030>/TX delay time' */
31483 L4_MABX_B.SFunction1_o4_c = L4_MABX_P.TXdelaytime_Y0_h;
31484
31485 /* End of SystemInitialize for SubSystem: '<S1028>/CAN_TYPE1_TX_M1_C1' */
31486
31487 /* SystemInitialize for Triggered SubSystem: '<S1029>/CAN_TYPE1_TX_M1_C1' */
31488 /* SystemInitialize for Outport: '<S1031>/TX status' */
31489 L4_MABX_B.SFunction1_o1_f = L4_MABX_P.TXstatus_Y0_m;
31490
31491 /* SystemInitialize for Outport: '<S1031>/TX time' */
31492 L4_MABX_B.SFunction1_o2_d = L4_MABX_P.TXtime_Y0_mk;
31493
31494 /* SystemInitialize for Outport: '<S1031>/TX delta time' */
31495 L4_MABX_B.SFunction1_o3_c = L4_MABX_P.TXdeltatime_Y0_oz;
31496
31497 /* SystemInitialize for Outport: '<S1031>/TX delay time' */
31498 L4_MABX_B.SFunction1_o4_p = L4_MABX_P.TXdelaytime_Y0_d;
31499
31500 /* End of SystemInitialize for SubSystem: '<S1029>/CAN_TYPE1_TX_M1_C1' */
31501
31502 /* SystemInitialize for Chart: '<S825>/Chart' */
31503 L4_MABX_DW.temporalCounter_i1_f = 0U;
31504 L4_MABX_DW.is_active_c4_SUB_ECU_L4_MABX_HW = 0U;
31505 L4_MABX_DW.is_c4_SUB_ECU_L4_MABX_HW_Interf = L4_MABX_IN_NO_ACTIVE_CHILD;
31506
31507 /* SystemInitialize for Enabled SubSystem: '<S559>/GNSSDOPs_011' */
31508 /* SystemInitialize for Outport: '<S560>/SID' */
31509 L4_MABX_B.SFunction1_o1_ig = L4_MABX_P.SID_Y0_i;
31510
31511 /* SystemInitialize for Outport: '<S560>/SetMode' */
31512 L4_MABX_B.SFunction1_o2_cn = L4_MABX_P.SetMode_Y0;
31513
31514 /* SystemInitialize for Outport: '<S560>/OpMode' */
31515 L4_MABX_B.SFunction1_o3_ia = L4_MABX_P.OpMode_Y0;
31516
31517 /* SystemInitialize for Outport: '<S560>/HDOP_' */
31518 L4_MABX_B.SFunction1_o4_al = L4_MABX_P.HDOP_Y0;
31519
31520 /* SystemInitialize for Outport: '<S560>/VDOP' */
31521 L4_MABX_B.SFunction1_o5_aw = L4_MABX_P.VDOP_Y0;
31522
31523 /* SystemInitialize for Outport: '<S560>/TDOP' */
31524 L4_MABX_B.SFunction1_o6_nd = L4_MABX_P.TDOP_Y0;
31525
31526 /* SystemInitialize for Outport: '<S560>/RX status' */
31527 L4_MABX_B.SFunction1_o7_eh = L4_MABX_P.RXstatus_Y0_ln;
31528
31529 /* SystemInitialize for Outport: '<S560>/RX time' */
31530 L4_MABX_B.SFunction1_o8_l = L4_MABX_P.RXtime_Y0_ot;
31531
31532 /* SystemInitialize for Outport: '<S560>/RX delta time' */
31533 L4_MABX_B.SFunction1_o9_d = L4_MABX_P.RXdeltatime_Y0_k0;
31534
31535 /* End of SystemInitialize for SubSystem: '<S559>/GNSSDOPs_011' */
31536
31537 /* SystemInitialize for Enabled SubSystem: '<S559>/GNSSDOPs_1' */
31538 /* SystemInitialize for Outport: '<S561>/SID' */
31539 L4_MABX_B.SFunction1_o1_oq = L4_MABX_P.SID_Y0_h;
31540
31541 /* SystemInitialize for Outport: '<S561>/SetMode' */
31542 L4_MABX_B.SFunction1_o2_dtj = L4_MABX_P.SetMode_Y0_b;
31543
31544 /* SystemInitialize for Outport: '<S561>/OpMode' */
31545 L4_MABX_B.SFunction1_o3_mj = L4_MABX_P.OpMode_Y0_a;
31546
31547 /* SystemInitialize for Outport: '<S561>/HDOP_' */
31548 L4_MABX_B.SFunction1_o4_ly = L4_MABX_P.HDOP_Y0_c;
31549
31550 /* SystemInitialize for Outport: '<S561>/VDOP' */
31551 L4_MABX_B.SFunction1_o5_pz = L4_MABX_P.VDOP_Y0_g;
31552
31553 /* SystemInitialize for Outport: '<S561>/TDOP' */
31554 L4_MABX_B.SFunction1_o6_l = L4_MABX_P.TDOP_Y0_p;
31555
31556 /* SystemInitialize for Outport: '<S561>/RX status' */
31557 L4_MABX_B.SFunction1_o7_bz = L4_MABX_P.RXstatus_Y0_kjx;
31558
31559 /* SystemInitialize for Outport: '<S561>/RX time' */
31560 L4_MABX_B.SFunction1_o8_m = L4_MABX_P.RXtime_Y0_nn;
31561
31562 /* SystemInitialize for Outport: '<S561>/RX delta time' */
31563 L4_MABX_B.SFunction1_o9_hi = L4_MABX_P.RXdeltatime_Y0_nn;
31564
31565 /* End of SystemInitialize for SubSystem: '<S559>/GNSSDOPs_1' */
31566
31567 /* SystemInitialize for Atomic SubSystem: '<S65>/Task_20ms' */
31568 /* InitializeConditions for UnitDelay: '<S382>/Unit Delay1' */
31569 L4_MABX_DW.UnitDelay1_DSTATE = L4_MABX_P.UnitDelay1_InitialCondition_p;
31570
31571 /* InitializeConditions for DiscreteIntegrator: '<S383>/LongitudnalPosition' */
31572 L4_MABX_DW.LongitudnalPosition_DSTATE = L4_MABX_B.InitialPosition;
31573 L4_MABX_DW.LongitudnalPosition_PrevResetSt = 2;
31574
31575 /* InitializeConditions for DiscreteIntegrator: '<S383>/VehHeading' */
31576 L4_MABX_DW.VehHeading_DSTATE = L4_MABX_B.InitialHeading;
31577 L4_MABX_DW.VehHeading_PrevResetState = 2;
31578
31579 /* InitializeConditions for DiscreteIntegrator: '<S383>/XPosition' */
31580 L4_MABX_DW.XPosition_DSTATE = L4_MABX_B.InitialXPosition;
31581 L4_MABX_DW.XPosition_PrevResetState = 2;
31582
31583 /* InitializeConditions for DiscreteIntegrator: '<S383>/YPosition' */
31584 L4_MABX_DW.YPosition_DSTATE = L4_MABX_B.InitialYPosition;
31585 L4_MABX_DW.YPosition_PrevResetState = 2;
31586
31587 /* End of SystemInitialize for SubSystem: '<S65>/Task_20ms' */
31588
31589 /* SystemInitialize for S-Function (rti_commonblock): '<S394>/S-Function1' incorporates:
31590 * SubSystem: '<S386>/Background_Task'
31591 */
31592 L4_MAB_Background_Task_Init();
31593
31594 /* End of SystemInitialize for S-Function (rti_commonblock): '<S394>/S-Function1' */
31595
31596 /* SystemInitialize for S-Function (rti_commonblock): '<S400>/S-Function1' incorporates:
31597 * SubSystem: '<S386>/Interrupt_Task'
31598 */
31599 L4_MABX_Interrupt_Task_Init();
31600
31601 /* End of SystemInitialize for S-Function (rti_commonblock): '<S400>/S-Function1' */
31602
31603 /* SystemInitialize for Enabled SubSystem: '<S481>/AEBS1_A0' */
31604 /* SystemInitialize for Outport: '<S482>/AdvEmergencyBrkSysState' */
31605 L4_MABX_B.SFunction1_o1_cj = L4_MABX_P.AdvEmergencyBrkSysState_Y0;
31606
31607 /* SystemInitialize for Outport: '<S482>/CollisionWarningLevel' */
31608 L4_MABX_B.SFunction1_o2_gf = L4_MABX_P.CollisionWarningLevel_Y0;
31609
31610 /* SystemInitialize for Outport: '<S482>/RelObjctDetForAdvEmergBrakingSys' */
31611 L4_MABX_B.SFunction1_o3_bn = L4_MABX_P.RelObjctDetForAdvEmergBrakingSy;
31612
31613 /* SystemInitialize for Outport: '<S482>/BendOffProbabOfRelevantObject' */
31614 L4_MABX_B.SFunction1_o4_ey = L4_MABX_P.BendOffProbabOfRelevantObject_Y;
31615
31616 /* SystemInitialize for Outport: '<S482>/TimeToCollisionWithRelevantObj' */
31617 L4_MABX_B.SFunction1_o5_os = L4_MABX_P.TimeToCollisionWithRelevantObj_;
31618
31619 /* SystemInitialize for Outport: '<S482>/RX status' */
31620 L4_MABX_B.SFunction1_o6_lf = L4_MABX_P.RXstatus_Y0_p;
31621
31622 /* SystemInitialize for Outport: '<S482>/RX time' */
31623 L4_MABX_B.SFunction1_o7_n4 = L4_MABX_P.RXtime_Y0_j;
31624
31625 /* SystemInitialize for Outport: '<S482>/RX delta time' */
31626 L4_MABX_B.SFunction1_o8_c = L4_MABX_P.RXdeltatime_Y0_oj;
31627
31628 /* End of SystemInitialize for SubSystem: '<S481>/AEBS1_A0' */
31629
31630 /* SystemInitialize for Enabled SubSystem: '<S487>/B2' */
31631 /* SystemInitialize for Outport: '<S488>/BrakeAppPressDemanded' */
31632 L4_MABX_B.SFunction1_o1_jm = L4_MABX_P.BrakeAppPressDemanded_Y0;
31633
31634 /* SystemInitialize for Outport: '<S488>/BrakeSwitch2' */
31635 L4_MABX_B.SFunction1_o2_ii = L4_MABX_P.BrakeSwitch2_Y0;
31636
31637 /* SystemInitialize for Outport: '<S488>/RX status' */
31638 L4_MABX_B.SFunction1_o3_bi = L4_MABX_P.RXstatus_Y0_km;
31639
31640 /* SystemInitialize for Outport: '<S488>/RX time' */
31641 L4_MABX_B.SFunction1_o4_hn = L4_MABX_P.RXtime_Y0_k;
31642
31643 /* SystemInitialize for Outport: '<S488>/RX delta time' */
31644 L4_MABX_B.SFunction1_o5_bt = L4_MABX_P.RXdeltatime_Y0_n;
31645
31646 /* End of SystemInitialize for SubSystem: '<S487>/B2' */
31647
31648 /* SystemInitialize for Enabled SubSystem: '<S489>/Tracks' */
31649 /* SystemInitialize for Outport: '<S490>/tr0_track_selection_status' */
31650 L4_MABX_B.SFunction1_o1_ow = L4_MABX_P.tr0_track_selection_status_Y0;
31651
31652 /* SystemInitialize for Outport: '<S490>/tr0_corrected_lateral_distance' */
31653 L4_MABX_B.SFunction1_o2_bma = L4_MABX_P.tr0_corrected_lateral_distance_;
31654
31655 /* SystemInitialize for Outport: '<S490>/tr1_track_selection_status' */
31656 L4_MABX_B.SFunction1_o3_gs = L4_MABX_P.tr1_track_selection_status_Y0;
31657
31658 /* SystemInitialize for Outport: '<S490>/tr1_corrected_lateral_distance' */
31659 L4_MABX_B.SFunction1_o4_nf = L4_MABX_P.tr1_corrected_lateral_distance_;
31660
31661 /* SystemInitialize for Outport: '<S490>/tr2_track_selection_status' */
31662 L4_MABX_B.SFunction1_o5_mm = L4_MABX_P.tr2_track_selection_status_Y0;
31663
31664 /* SystemInitialize for Outport: '<S490>/tr2_corrected_lateral_distance' */
31665 L4_MABX_B.SFunction1_o6_ci = L4_MABX_P.tr2_corrected_lateral_distance_;
31666
31667 /* SystemInitialize for Outport: '<S490>/tr3_track_selection_status' */
31668 L4_MABX_B.SFunction1_o7_ds = L4_MABX_P.tr3_track_selection_status_Y0;
31669
31670 /* SystemInitialize for Outport: '<S490>/tr3_corrected_lateral_distance' */
31671 L4_MABX_B.SFunction1_o8_n = L4_MABX_P.tr3_corrected_lateral_distance_;
31672
31673 /* SystemInitialize for Outport: '<S490>/tr4_track_selection_status' */
31674 L4_MABX_B.SFunction1_o9_iv = L4_MABX_P.tr4_track_selection_status_Y0;
31675
31676 /* SystemInitialize for Outport: '<S490>/tr4_corrected_lateral_distance' */
31677 L4_MABX_B.SFunction1_o10_fp = L4_MABX_P.tr4_corrected_lateral_distance_;
31678
31679 /* SystemInitialize for Outport: '<S490>/tr5_track_selection_status' */
31680 L4_MABX_B.SFunction1_o11_k = L4_MABX_P.tr5_track_selection_status_Y0;
31681
31682 /* SystemInitialize for Outport: '<S490>/tr5_corrected_lateral_distance' */
31683 L4_MABX_B.SFunction1_o12_a = L4_MABX_P.tr5_corrected_lateral_distance_;
31684
31685 /* SystemInitialize for Outport: '<S490>/tr6_track_selection_status' */
31686 L4_MABX_B.SFunction1_o13_g = L4_MABX_P.tr6_track_selection_status_Y0;
31687
31688 /* SystemInitialize for Outport: '<S490>/tr6_corrected_lateral_distance' */
31689 L4_MABX_B.SFunction1_o14_k = L4_MABX_P.tr6_corrected_lateral_distance_;
31690
31691 /* SystemInitialize for Outport: '<S490>/tr7_track_selection_status' */
31692 L4_MABX_B.SFunction1_o15_il = L4_MABX_P.tr7_track_selection_status_Y0;
31693
31694 /* SystemInitialize for Outport: '<S490>/tr7_corrected_lateral_distance' */
31695 L4_MABX_B.SFunction1_o16_cg = L4_MABX_P.tr7_corrected_lateral_distance_;
31696
31697 /* SystemInitialize for Outport: '<S490>/tr8_track_selection_status' */
31698 L4_MABX_B.SFunction1_o17_l1 = L4_MABX_P.tr8_track_selection_status_Y0;
31699
31700 /* SystemInitialize for Outport: '<S490>/tr8_corrected_lateral_distance' */
31701 L4_MABX_B.SFunction1_o18_a = L4_MABX_P.tr8_corrected_lateral_distance_;
31702
31703 /* SystemInitialize for Outport: '<S490>/tr9_track_selection_status' */
31704 L4_MABX_B.SFunction1_o19_l = L4_MABX_P.tr9_track_selection_status_Y0;
31705
31706 /* SystemInitialize for Outport: '<S490>/tr9_corrected_lateral_distance' */
31707 L4_MABX_B.SFunction1_o20_i = L4_MABX_P.tr9_corrected_lateral_distance_;
31708
31709 /* SystemInitialize for Outport: '<S490>/tr0_lateral_position' */
31710 L4_MABX_B.SFunction1_o21_d4 = L4_MABX_P.tr0_lateral_position_Y0;
31711
31712 /* SystemInitialize for Outport: '<S490>/tr1_lateral_position' */
31713 L4_MABX_B.SFunction1_o22_j1 = L4_MABX_P.tr1_lateral_position_Y0;
31714
31715 /* SystemInitialize for Outport: '<S490>/tr2_lateral_position' */
31716 L4_MABX_B.SFunction1_o23_o = L4_MABX_P.tr2_lateral_position_Y0;
31717
31718 /* SystemInitialize for Outport: '<S490>/tr3_lateral_position' */
31719 L4_MABX_B.SFunction1_o24_g = L4_MABX_P.tr3_lateral_position_Y0;
31720
31721 /* SystemInitialize for Outport: '<S490>/tr4_lateral_position' */
31722 L4_MABX_B.SFunction1_o25_g = L4_MABX_P.tr4_lateral_position_Y0;
31723
31724 /* SystemInitialize for Outport: '<S490>/tr5_lateral_position' */
31725 L4_MABX_B.SFunction1_o26_o = L4_MABX_P.tr5_lateral_position_Y0;
31726
31727 /* SystemInitialize for Outport: '<S490>/tr6_lateral_position' */
31728 L4_MABX_B.SFunction1_o27_b = L4_MABX_P.tr6_lateral_position_Y0;
31729
31730 /* SystemInitialize for Outport: '<S490>/tr7_lateral_position' */
31731 L4_MABX_B.SFunction1_o28_h = L4_MABX_P.tr7_lateral_position_Y0;
31732
31733 /* SystemInitialize for Outport: '<S490>/tr8_lateral_position' */
31734 L4_MABX_B.SFunction1_o29 = L4_MABX_P.tr8_lateral_position_Y0;
31735
31736 /* SystemInitialize for Outport: '<S490>/tr9_lateral_position' */
31737 L4_MABX_B.SFunction1_o30 = L4_MABX_P.tr9_lateral_position_Y0;
31738
31739 /* SystemInitialize for Outport: '<S490>/tr0_range' */
31740 L4_MABX_B.SFunction1_o31 = L4_MABX_P.tr0_range_Y0;
31741
31742 /* SystemInitialize for Outport: '<S490>/tr1_range' */
31743 L4_MABX_B.SFunction1_o32 = L4_MABX_P.tr1_range_Y0;
31744
31745 /* SystemInitialize for Outport: '<S490>/tr2_range' */
31746 L4_MABX_B.SFunction1_o33 = L4_MABX_P.tr2_range_Y0;
31747
31748 /* SystemInitialize for Outport: '<S490>/tr3_range' */
31749 L4_MABX_B.SFunction1_o34 = L4_MABX_P.tr3_range_Y0;
31750
31751 /* SystemInitialize for Outport: '<S490>/tr4_range' */
31752 L4_MABX_B.SFunction1_o35 = L4_MABX_P.tr4_range_Y0;
31753
31754 /* SystemInitialize for Outport: '<S490>/tr5_range' */
31755 L4_MABX_B.SFunction1_o36 = L4_MABX_P.tr5_range_Y0;
31756
31757 /* SystemInitialize for Outport: '<S490>/tr6_range' */
31758 L4_MABX_B.SFunction1_o37 = L4_MABX_P.tr6_range_Y0;
31759
31760 /* SystemInitialize for Outport: '<S490>/tr7_range' */
31761 L4_MABX_B.SFunction1_o38 = L4_MABX_P.tr7_range_Y0;
31762
31763 /* SystemInitialize for Outport: '<S490>/tr8_range' */
31764 L4_MABX_B.SFunction1_o39 = L4_MABX_P.tr8_range_Y0;
31765
31766 /* SystemInitialize for Outport: '<S490>/tr9_range' */
31767 L4_MABX_B.SFunction1_o40 = L4_MABX_P.tr9_range_Y0;
31768
31769 /* SystemInitialize for Outport: '<S490>/tr0_radar_confidence' */
31770 L4_MABX_B.SFunction1_o41 = L4_MABX_P.tr0_radar_confidence_Y0;
31771
31772 /* SystemInitialize for Outport: '<S490>/tr1_radar_confidence' */
31773 L4_MABX_B.SFunction1_o42 = L4_MABX_P.tr1_radar_confidence_Y0;
31774
31775 /* SystemInitialize for Outport: '<S490>/tr2_radar_confidence' */
31776 L4_MABX_B.SFunction1_o43 = L4_MABX_P.tr2_radar_confidence_Y0;
31777
31778 /* SystemInitialize for Outport: '<S490>/tr3_radar_confidence' */
31779 L4_MABX_B.SFunction1_o44 = L4_MABX_P.tr3_radar_confidence_Y0;
31780
31781 /* SystemInitialize for Outport: '<S490>/tr4_radar_confidence' */
31782 L4_MABX_B.SFunction1_o45 = L4_MABX_P.tr4_radar_confidence_Y0;
31783
31784 /* SystemInitialize for Outport: '<S490>/tr5_radar_confidence' */
31785 L4_MABX_B.SFunction1_o46 = L4_MABX_P.tr5_radar_confidence_Y0;
31786
31787 /* SystemInitialize for Outport: '<S490>/tr6_radar_confidence' */
31788 L4_MABX_B.SFunction1_o47 = L4_MABX_P.tr6_radar_confidence_Y0;
31789
31790 /* SystemInitialize for Outport: '<S490>/tr7_radar_confidence' */
31791 L4_MABX_B.SFunction1_o48 = L4_MABX_P.tr7_radar_confidence_Y0;
31792
31793 /* SystemInitialize for Outport: '<S490>/tr8_radar_confidence' */
31794 L4_MABX_B.SFunction1_o49 = L4_MABX_P.tr8_radar_confidence_Y0;
31795
31796 /* SystemInitialize for Outport: '<S490>/tr9_radar_confidence' */
31797 L4_MABX_B.SFunction1_o50 = L4_MABX_P.tr9_radar_confidence_Y0;
31798
31799 /* SystemInitialize for Outport: '<S490>/tr0_relative_velocitiy' */
31800 L4_MABX_B.SFunction1_o51 = L4_MABX_P.tr0_relative_velocitiy_Y0;
31801
31802 /* SystemInitialize for Outport: '<S490>/tr0_acceleration_over_ground' */
31803 L4_MABX_B.SFunction1_o52 = L4_MABX_P.tr0_acceleration_over_ground_Y0;
31804
31805 /* SystemInitialize for Outport: '<S490>/tr1_relative_velocitiy' */
31806 L4_MABX_B.SFunction1_o53 = L4_MABX_P.tr1_relative_velocitiy_Y0;
31807
31808 /* SystemInitialize for Outport: '<S490>/tr1_acceleration_over_ground' */
31809 L4_MABX_B.SFunction1_o54 = L4_MABX_P.tr1_acceleration_over_ground_Y0;
31810
31811 /* SystemInitialize for Outport: '<S490>/tr2_relative_velocitiy' */
31812 L4_MABX_B.SFunction1_o55 = L4_MABX_P.tr2_relative_velocitiy_Y0;
31813
31814 /* SystemInitialize for Outport: '<S490>/tr2_acceleration_over_ground' */
31815 L4_MABX_B.SFunction1_o56 = L4_MABX_P.tr2_acceleration_over_ground_Y0;
31816
31817 /* SystemInitialize for Outport: '<S490>/tr3_relative_velocitiy' */
31818 L4_MABX_B.SFunction1_o57 = L4_MABX_P.tr3_relative_velocitiy_Y0;
31819
31820 /* SystemInitialize for Outport: '<S490>/tr3_acceleration_over_ground' */
31821 L4_MABX_B.SFunction1_o58 = L4_MABX_P.tr3_acceleration_over_ground_Y0;
31822
31823 /* SystemInitialize for Outport: '<S490>/tr4_relative_velocitiy' */
31824 L4_MABX_B.SFunction1_o59 = L4_MABX_P.tr4_relative_velocitiy_Y0;
31825
31826 /* SystemInitialize for Outport: '<S490>/tr4_acceleration_over_ground' */
31827 L4_MABX_B.SFunction1_o60 = L4_MABX_P.tr4_acceleration_over_ground_Y0;
31828
31829 /* SystemInitialize for Outport: '<S490>/tr5_relative_velocitiy' */
31830 L4_MABX_B.SFunction1_o61 = L4_MABX_P.tr5_relative_velocitiy_Y0;
31831
31832 /* SystemInitialize for Outport: '<S490>/tr5_acceleration_over_ground' */
31833 L4_MABX_B.SFunction1_o62 = L4_MABX_P.tr5_acceleration_over_ground_Y0;
31834
31835 /* SystemInitialize for Outport: '<S490>/tr6_relative_velocitiy' */
31836 L4_MABX_B.SFunction1_o63 = L4_MABX_P.tr6_relative_velocitiy_Y0;
31837
31838 /* SystemInitialize for Outport: '<S490>/tr6_acceleration_over_ground' */
31839 L4_MABX_B.SFunction1_o64 = L4_MABX_P.tr6_acceleration_over_ground_Y0;
31840
31841 /* SystemInitialize for Outport: '<S490>/tr7_relative_velocitiy' */
31842 L4_MABX_B.SFunction1_o65 = L4_MABX_P.tr7_relative_velocitiy_Y0;
31843
31844 /* SystemInitialize for Outport: '<S490>/tr7_acceleration_over_ground' */
31845 L4_MABX_B.SFunction1_o66 = L4_MABX_P.tr7_acceleration_over_ground_Y0;
31846
31847 /* SystemInitialize for Outport: '<S490>/tr8_relative_velocitiy' */
31848 L4_MABX_B.SFunction1_o67 = L4_MABX_P.tr8_relative_velocitiy_Y0;
31849
31850 /* SystemInitialize for Outport: '<S490>/tr8_acceleration_over_ground' */
31851 L4_MABX_B.SFunction1_o68 = L4_MABX_P.tr8_acceleration_over_ground_Y0;
31852
31853 /* SystemInitialize for Outport: '<S490>/tr9_relative_velocitiy' */
31854 L4_MABX_B.SFunction1_o69 = L4_MABX_P.tr9_relative_velocitiy_Y0;
31855
31856 /* SystemInitialize for Outport: '<S490>/tr9_acceleration_over_ground' */
31857 L4_MABX_B.SFunction1_o70 = L4_MABX_P.tr9_acceleration_over_ground_Y0;
31858
31859 /* SystemInitialize for Outport: '<S490>/track_multiplexor' */
31860 L4_MABX_B.SFunction1_o71 = L4_MABX_P.track_multiplexor_Y0;
31861
31862 /* SystemInitialize for Outport: '<S490>/RX status' */
31863 L4_MABX_B.SFunction1_o72 = L4_MABX_P.RXstatus_Y0_n;
31864
31865 /* SystemInitialize for Outport: '<S490>/RX time' */
31866 L4_MABX_B.SFunction1_o73 = L4_MABX_P.RXtime_Y0_gl;
31867
31868 /* SystemInitialize for Outport: '<S490>/RX delta time' */
31869 L4_MABX_B.SFunction1_o74 = L4_MABX_P.RXdeltatime_Y0_f;
31870
31871 /* End of SystemInitialize for SubSystem: '<S489>/Tracks' */
31872
31873 /* SystemInitialize for Enabled SubSystem: '<S500>/EBC1_0B' */
31874 /* SystemInitialize for Outport: '<S501>/ASREngCtrlActive' */
31875 L4_MABX_B.SFunction1_o1_je = L4_MABX_P.ASREngCtrlActive_Y0;
31876
31877 /* SystemInitialize for Outport: '<S501>/ASRBrakeCtrlActive' */
31878 L4_MABX_B.SFunction1_o2_pn = L4_MABX_P.ASRBrakeCtrlActive_Y0;
31879
31880 /* SystemInitialize for Outport: '<S501>/AntiLockBrakingActive' */
31881 L4_MABX_B.SFunction1_o3_la = L4_MABX_P.AntiLockBrakingActive_Y0;
31882
31883 /* SystemInitialize for Outport: '<S501>/EBSBrakeSwitch' */
31884 L4_MABX_B.SFunction1_o4_mi = L4_MABX_P.EBSBrakeSwitch_Y0;
31885
31886 /* SystemInitialize for Outport: '<S501>/BrakePedalPos' */
31887 L4_MABX_B.SFunction1_o5_ks = L4_MABX_P.BrakePedalPos_Y0;
31888
31889 /* SystemInitialize for Outport: '<S501>/ABSOffroadSwitch' */
31890 L4_MABX_B.SFunction1_o6_aa = L4_MABX_P.ABSOffroadSwitch_Y0;
31891
31892 /* SystemInitialize for Outport: '<S501>/ASROffroadSwitch' */
31893 L4_MABX_B.SFunction1_o7_f2 = L4_MABX_P.ASROffroadSwitch_Y0;
31894
31895 /* SystemInitialize for Outport: '<S501>/ASRHillHolderSwitch' */
31896 L4_MABX_B.SFunction1_o8_ei = L4_MABX_P.ASRHillHolderSwitch_Y0;
31897
31898 /* SystemInitialize for Outport: '<S501>/TractionCtrlOverrideSwitch' */
31899 L4_MABX_B.SFunction1_o9_j = L4_MABX_P.TractionCtrlOverrideSwitch_Y0;
31900
31901 /* SystemInitialize for Outport: '<S501>/AccelInterlockSwitch' */
31902 L4_MABX_B.SFunction1_o10_p = L4_MABX_P.AccelInterlockSwitch_Y0;
31903
31904 /* SystemInitialize for Outport: '<S501>/EngDerateSwitch' */
31905 L4_MABX_B.SFunction1_o11_gi = L4_MABX_P.EngDerateSwitch_Y0;
31906
31907 /* SystemInitialize for Outport: '<S501>/EngAuxShutdownSwitch' */
31908 L4_MABX_B.SFunction1_o12_d = L4_MABX_P.EngAuxShutdownSwitch_Y0;
31909
31910 /* SystemInitialize for Outport: '<S501>/RemoteAccelEnableSwitch' */
31911 L4_MABX_B.SFunction1_o13_i = L4_MABX_P.RemoteAccelEnableSwitch_Y0;
31912
31913 /* SystemInitialize for Outport: '<S501>/EngRetarderSelection' */
31914 L4_MABX_B.SFunction1_o14_l = L4_MABX_P.EngRetarderSelection_Y0;
31915
31916 /* SystemInitialize for Outport: '<S501>/ABSFullyOperational' */
31917 L4_MABX_B.SFunction1_o15_j = L4_MABX_P.ABSFullyOperational_Y0;
31918
31919 /* SystemInitialize for Outport: '<S501>/EBSRedWarningSignal' */
31920 L4_MABX_B.SFunction1_o16_pw = L4_MABX_P.EBSRedWarningSignal_Y0;
31921
31922 /* SystemInitialize for Outport: '<S501>/ABS_EBSAmberWarningSignal' */
31923 L4_MABX_B.SFunction1_o17_l = L4_MABX_P.ABS_EBSAmberWarningSignal_Y0;
31924
31925 /* SystemInitialize for Outport: '<S501>/ATC_ASRInformationSignal' */
31926 L4_MABX_B.SFunction1_o18_c = L4_MABX_P.ATC_ASRInformationSignal_Y0;
31927
31928 /* SystemInitialize for Outport: '<S501>/SrcAddrssOfCtrllngDvcFrBrkCntrl' */
31929 L4_MABX_B.SFunction1_o19_n = L4_MABX_P.SrcAddrssOfCtrllngDvcFrBrkCntrl;
31930
31931 /* SystemInitialize for Outport: '<S501>/HaltBrakeSwitch' */
31932 L4_MABX_B.SFunction1_o20_f = L4_MABX_P.HaltBrakeSwitch_Y0;
31933
31934 /* SystemInitialize for Outport: '<S501>/TrailerABSStatus' */
31935 L4_MABX_B.SFunction1_o21_m = L4_MABX_P.TrailerABSStatus_Y0;
31936
31937 /* SystemInitialize for Outport: '<S501>/TrctrMntdTrilerABSWarningSignal' */
31938 L4_MABX_B.SFunction1_o22_j = L4_MABX_P.TrctrMntdTrilerABSWarningSignal;
31939
31940 /* SystemInitialize for Outport: '<S501>/RX status' */
31941 L4_MABX_B.SFunction1_o23_f = L4_MABX_P.RXstatus_Y0_c;
31942
31943 /* SystemInitialize for Outport: '<S501>/RX time' */
31944 L4_MABX_B.SFunction1_o24_i = L4_MABX_P.RXtime_Y0_l;
31945
31946 /* SystemInitialize for Outport: '<S501>/RX delta time' */
31947 L4_MABX_B.SFunction1_o25_bb = L4_MABX_P.RXdeltatime_Y0_fa;
31948
31949 /* End of SystemInitialize for SubSystem: '<S500>/EBC1_0B' */
31950
31951 /* SystemInitialize for Enabled SubSystem: '<S553>/EEC2_001' */
31952 /* SystemInitialize for Outport: '<S554>/SPN558_AccelPed1LowIdlSwitch' */
31953 L4_MABX_B.SFunction1_o1_fok = L4_MABX_P.SPN558_AccelPed1LowIdlSwitch_Y0;
31954
31955 /* SystemInitialize for Outport: '<S554>/SPN559_AccelPedKickdownSw' */
31956 L4_MABX_B.SFunction1_o2_kw = L4_MABX_P.SPN559_AccelPedKickdownSw_Y0;
31957
31958 /* SystemInitialize for Outport: '<S554>/SPN1437_RoadSpeedLimitStatus' */
31959 L4_MABX_B.SFunction1_o3_nv = L4_MABX_P.SPN1437_RoadSpeedLimitStatus_Y0;
31960
31961 /* SystemInitialize for Outport: '<S554>/SPN2970_AccelPed2LowIdlSwitch' */
31962 L4_MABX_B.SFunction1_o4_dio = L4_MABX_P.SPN2970_AccelPed2LowIdlSwitch_Y;
31963
31964 /* SystemInitialize for Outport: '<S554>/SPN91_AccelPedPos1' */
31965 L4_MABX_B.SFunction1_o5_l5 = L4_MABX_P.SPN91_AccelPedPos1_Y0;
31966
31967 /* SystemInitialize for Outport: '<S554>/SPN92_EngPercLoadAtCurrSpd' */
31968 L4_MABX_B.SFunction1_o6_k = L4_MABX_P.SPN92_EngPercLoadAtCurrSpd_Y0;
31969
31970 /* SystemInitialize for Outport: '<S554>/SPN974_RemAccelPedalPosition' */
31971 L4_MABX_B.SFunction1_o7_kz = L4_MABX_P.SPN974_RemAccelPedalPosition_Y0;
31972
31973 /* SystemInitialize for Outport: '<S554>/SPN29_AccelPedPos2' */
31974 L4_MABX_B.SFunction1_o8_fg = L4_MABX_P.SPN29_AccelPedPos2_Y0;
31975
31976 /* SystemInitialize for Outport: '<S554>/SPN2979_VehAccelRateLimStatus' */
31977 L4_MABX_B.SFunction1_o9_p0 = L4_MABX_P.SPN2979_VehAccelRateLimStatus_Y;
31978
31979 /* SystemInitialize for Outport: '<S554>/SPN5021_MomEngMaxPwrEnFdbk' */
31980 L4_MABX_B.SFunction1_o10_gp = L4_MABX_P.SPN5021_MomEngMaxPwrEnFdbk_Y0;
31981
31982 /* SystemInitialize for Outport: '<S554>/SPN5399_DPFThermMgmtActive' */
31983 L4_MABX_B.SFunction1_o11_e = L4_MABX_P.SPN5399_DPFThermMgmtActive_Y0;
31984
31985 /* SystemInitialize for Outport: '<S554>/SPN5400_SCRThermMgmtActive' */
31986 L4_MABX_B.SFunction1_o12_o = L4_MABX_P.SPN5400_SCRThermMgmtActive_Y0;
31987
31988 /* SystemInitialize for Outport: '<S554>/SPN3357_ActMaxAvailEngPercTrq' */
31989 L4_MABX_B.SFunction1_o13_a = L4_MABX_P.SPN3357_ActMaxAvailEngPercTrq_Y;
31990
31991 /* SystemInitialize for Outport: '<S554>/SPN5398_EstPumpingPercentTorque' */
31992 L4_MABX_B.SFunction1_o14_h = L4_MABX_P.SPN5398_EstPumpingPercentTorque;
31993
31994 /* SystemInitialize for Outport: '<S554>/RX status' */
31995 L4_MABX_B.SFunction1_o15_p = L4_MABX_P.RXstatus_Y0_gv;
31996
31997 /* SystemInitialize for Outport: '<S554>/RX time' */
31998 L4_MABX_B.SFunction1_o16_p = L4_MABX_P.RXtime_Y0_li;
31999
32000 /* SystemInitialize for Outport: '<S554>/RX delta time' */
32001 L4_MABX_B.SFunction1_o17_m = L4_MABX_P.RXdeltatime_Y0_c;
32002
32003 /* End of SystemInitialize for SubSystem: '<S553>/EEC2_001' */
32004
32005 /* SystemInitialize for Enabled SubSystem: '<S594>/CAN_TYPE1_RX_M1_C1' */
32006 /* SystemInitialize for Outport: '<S598>/EPBPCMInhibitStatusFeedback' */
32007 L4_MABX_B.SFunction1_o1_pd = L4_MABX_P.EPBPCMInhibitStatusFeedback_Y0;
32008
32009 /* SystemInitialize for Outport: '<S598>/EPBPCMManualStatusFeedback' */
32010 L4_MABX_B.SFunction1_o2_hg = L4_MABX_P.EPBPCMManualStatusFeedback_Y0;
32011
32012 /* SystemInitialize for Outport: '<S598>/RX status' */
32013 L4_MABX_B.SFunction1_o3_ky = L4_MABX_P.RXstatus_Y0_h;
32014
32015 /* SystemInitialize for Outport: '<S598>/RX time' */
32016 L4_MABX_B.SFunction1_o4_dw = L4_MABX_P.RXtime_Y0_c5;
32017
32018 /* SystemInitialize for Outport: '<S598>/RX delta time' */
32019 L4_MABX_B.SFunction1_o5_b = L4_MABX_P.RXdeltatime_Y0_j;
32020
32021 /* End of SystemInitialize for SubSystem: '<S594>/CAN_TYPE1_RX_M1_C1' */
32022
32023 /* SystemInitialize for Enabled SubSystem: '<S595>/CAN_TYPE1_RX_M1_C2' */
32024 /* SystemInitialize for Outport: '<S599>/EPBPCMInhibitStatusFeedback' */
32025 L4_MABX_B.SFunction1_o1_c4q = L4_MABX_P.EPBPCMInhibitStatusFeedback_Y_a;
32026
32027 /* SystemInitialize for Outport: '<S599>/EPBPCMManualStatusFeedback' */
32028 L4_MABX_B.SFunction1_o2_in = L4_MABX_P.EPBPCMManualStatusFeedback_Y0_h;
32029
32030 /* SystemInitialize for Outport: '<S599>/RX status' */
32031 L4_MABX_B.SFunction1_o3_n = L4_MABX_P.RXstatus_Y0_o3;
32032
32033 /* SystemInitialize for Outport: '<S599>/RX time' */
32034 L4_MABX_B.SFunction1_o4_dp = L4_MABX_P.RXtime_Y0_n0;
32035
32036 /* SystemInitialize for Outport: '<S599>/RX delta time' */
32037 L4_MABX_B.SFunction1_o5_mf = L4_MABX_P.RXdeltatime_Y0_dy;
32038
32039 /* End of SystemInitialize for SubSystem: '<S595>/CAN_TYPE1_RX_M1_C2' */
32040
32041 /* SystemInitialize for Enabled SubSystem: '<S596>/CAN_TYPE1_RX_M2_C1' */
32042 /* SystemInitialize for Outport: '<S600>/EPBPCMInhibitStatusFeedback' */
32043 L4_MABX_B.SFunction1_o1_ir = L4_MABX_P.EPBPCMInhibitStatusFeedback_Y_p;
32044
32045 /* SystemInitialize for Outport: '<S600>/EPBPCMManualStatusFeedback' */
32046 L4_MABX_B.SFunction1_o2_b4 = L4_MABX_P.EPBPCMManualStatusFeedback_Y0_o;
32047
32048 /* SystemInitialize for Outport: '<S600>/RX status' */
32049 L4_MABX_B.SFunction1_o3_ix = L4_MABX_P.RXstatus_Y0_bf;
32050
32051 /* SystemInitialize for Outport: '<S600>/RX time' */
32052 L4_MABX_B.SFunction1_o4_ji = L4_MABX_P.RXtime_Y0_b;
32053
32054 /* SystemInitialize for Outport: '<S600>/RX delta time' */
32055 L4_MABX_B.SFunction1_o5_ip = L4_MABX_P.RXdeltatime_Y0_jt;
32056
32057 /* End of SystemInitialize for SubSystem: '<S596>/CAN_TYPE1_RX_M2_C1' */
32058
32059 /* SystemInitialize for Enabled SubSystem: '<S607>/PX2_LaneEdgeLeft' */
32060 /* SystemInitialize for Outport: '<S608>/PX2_LaneEdgeLeftAngle' */
32061 L4_MABX_B.SFunction1_o1_lx = L4_MABX_P.PX2_LaneEdgeLeftAngle_Y0;
32062
32063 /* SystemInitialize for Outport: '<S608>/PX2_LaneEdgeLeftNumPoints' */
32064 L4_MABX_B.SFunction1_o2_er = L4_MABX_P.PX2_LaneEdgeLeftNumPoints_Y0;
32065
32066 /* SystemInitialize for Outport: '<S608>/PX2_LaneEdgeLeftPosition' */
32067 L4_MABX_B.SFunction1_o3_jg = L4_MABX_P.PX2_LaneEdgeLeftPosition_Y0;
32068
32069 /* SystemInitialize for Outport: '<S608>/RX status' */
32070 L4_MABX_B.SFunction1_o4_i = L4_MABX_P.RXstatus_Y0_mg;
32071
32072 /* SystemInitialize for Outport: '<S608>/RX time' */
32073 L4_MABX_B.SFunction1_o5_dq = L4_MABX_P.RXtime_Y0_eq;
32074
32075 /* SystemInitialize for Outport: '<S608>/RX delta time' */
32076 L4_MABX_B.SFunction1_o6_d2 = L4_MABX_P.RXdeltatime_Y0_ht;
32077
32078 /* End of SystemInitialize for SubSystem: '<S607>/PX2_LaneEdgeLeft' */
32079
32080 /* SystemInitialize for Enabled SubSystem: '<S607>/PX2_LaneEdgeRight' */
32081 /* SystemInitialize for Outport: '<S609>/PX2_LaneEdgeRightAngle' */
32082 L4_MABX_B.SFunction1_o1_er = L4_MABX_P.PX2_LaneEdgeRightAngle_Y0;
32083
32084 /* SystemInitialize for Outport: '<S609>/PX2_LaneEdgeRightNumPoints' */
32085 L4_MABX_B.SFunction1_o2_ia = L4_MABX_P.PX2_LaneEdgeRightNumPoints_Y0;
32086
32087 /* SystemInitialize for Outport: '<S609>/PX2_LaneEdgeRightPosition' */
32088 L4_MABX_B.SFunction1_o3_oq = L4_MABX_P.PX2_LaneEdgeRightPosition_Y0;
32089
32090 /* SystemInitialize for Outport: '<S609>/RX status' */
32091 L4_MABX_B.SFunction1_o4_gs = L4_MABX_P.RXstatus_Y0_l5;
32092
32093 /* SystemInitialize for Outport: '<S609>/RX time' */
32094 L4_MABX_B.SFunction1_o5_h = L4_MABX_P.RXtime_Y0_jo;
32095
32096 /* SystemInitialize for Outport: '<S609>/RX delta time' */
32097 L4_MABX_B.SFunction1_o6_e = L4_MABX_P.RXdeltatime_Y0_fh;
32098
32099 /* End of SystemInitialize for SubSystem: '<S607>/PX2_LaneEdgeRight' */
32100
32101 /* SystemInitialize for Enabled SubSystem: '<S618>/PX2_MapLaneEgoLeft' */
32102 /* SystemInitialize for Outport: '<S619>/PX2_MapLaneNearPos' */
32103 L4_MABX_B.SFunction1_o1_aw = L4_MABX_P.PX2_MapLaneNearPos_Y0;
32104
32105 /* SystemInitialize for Outport: '<S619>/PX2_MapLaneMidPos' */
32106 L4_MABX_B.SFunction1_o2_jd = L4_MABX_P.PX2_MapLaneMidPos_Y0;
32107
32108 /* SystemInitialize for Outport: '<S619>/PX2_MapLaneFarPos' */
32109 L4_MABX_B.SFunction1_o3_hj = L4_MABX_P.PX2_MapLaneFarPos_Y0;
32110
32111 /* SystemInitialize for Outport: '<S619>/PX2_EgoLaneNearPosValid' */
32112 L4_MABX_B.SFunction1_o4_es = L4_MABX_P.PX2_EgoLaneNearPosValid_Y0;
32113
32114 /* SystemInitialize for Outport: '<S619>/PX2_EgoLaneMidPosValid' */
32115 L4_MABX_B.SFunction1_o5_d = L4_MABX_P.PX2_EgoLaneMidPosValid_Y0;
32116
32117 /* SystemInitialize for Outport: '<S619>/PX2_EgoLaneFarPosValid' */
32118 L4_MABX_B.SFunction1_o6_a = L4_MABX_P.PX2_EgoLaneFarPosValid_Y0;
32119
32120 /* SystemInitialize for Outport: '<S619>/RX status' */
32121 L4_MABX_B.SFunction1_o7_e4 = L4_MABX_P.RXstatus_Y0_g4;
32122
32123 /* SystemInitialize for Outport: '<S619>/RX time' */
32124 L4_MABX_B.SFunction1_o8_fv = L4_MABX_P.RXtime_Y0_k4;
32125
32126 /* SystemInitialize for Outport: '<S619>/RX delta time' */
32127 L4_MABX_B.SFunction1_o9_h = L4_MABX_P.RXdeltatime_Y0_bk;
32128
32129 /* End of SystemInitialize for SubSystem: '<S618>/PX2_MapLaneEgoLeft' */
32130
32131 /* SystemInitialize for Enabled SubSystem: '<S620>/PX2_MapLaneEgoRight' */
32132 /* SystemInitialize for Outport: '<S621>/PX2_MapLaneNearPos' */
32133 L4_MABX_B.SFunction1_o1_d1 = L4_MABX_P.PX2_MapLaneNearPos_Y0_p;
32134
32135 /* SystemInitialize for Outport: '<S621>/PX2_MapLaneMidPos' */
32136 L4_MABX_B.SFunction1_o2_is = L4_MABX_P.PX2_MapLaneMidPos_Y0_d;
32137
32138 /* SystemInitialize for Outport: '<S621>/PX2_MapLaneFarPos' */
32139 L4_MABX_B.SFunction1_o3_h2 = L4_MABX_P.PX2_MapLaneFarPos_Y0_f;
32140
32141 /* SystemInitialize for Outport: '<S621>/PX2_EgoLaneNearPosValid' */
32142 L4_MABX_B.SFunction1_o4_gj = L4_MABX_P.PX2_EgoLaneNearPosValid_Y0_p;
32143
32144 /* SystemInitialize for Outport: '<S621>/PX2_EgoLaneMidPosValid' */
32145 L4_MABX_B.SFunction1_o5_i = L4_MABX_P.PX2_EgoLaneMidPosValid_Y0_h;
32146
32147 /* SystemInitialize for Outport: '<S621>/PX2_EgoLaneFarPosValid' */
32148 L4_MABX_B.SFunction1_o6_m = L4_MABX_P.PX2_EgoLaneFarPosValid_Y0_d;
32149
32150 /* SystemInitialize for Outport: '<S621>/RX status' */
32151 L4_MABX_B.SFunction1_o7_i = L4_MABX_P.RXstatus_Y0_km4;
32152
32153 /* SystemInitialize for Outport: '<S621>/RX time' */
32154 L4_MABX_B.SFunction1_o8_f = L4_MABX_P.RXtime_Y0_ak;
32155
32156 /* SystemInitialize for Outport: '<S621>/RX delta time' */
32157 L4_MABX_B.SFunction1_o9_l = L4_MABX_P.RXdeltatime_Y0_cx;
32158
32159 /* End of SystemInitialize for SubSystem: '<S620>/PX2_MapLaneEgoRight' */
32160
32161 /* SystemInitialize for Enabled SubSystem: '<S622>/PX2_EgoLanePos' */
32162 /* SystemInitialize for Outport: '<S623>/PX2_EgoLaneNearPosErr' */
32163 L4_MABX_B.SFunction1_o1_gi = L4_MABX_P.PX2_EgoLaneNearPosErr_Y0;
32164
32165 /* SystemInitialize for Outport: '<S623>/PX2_EgoLaneMidPosErr' */
32166 L4_MABX_B.SFunction1_o2_a = L4_MABX_P.PX2_EgoLaneMidPosErr_Y0;
32167
32168 /* SystemInitialize for Outport: '<S623>/PX2_EgoLaneFarPosErr' */
32169 L4_MABX_B.SFunction1_o3_br = L4_MABX_P.PX2_EgoLaneFarPosErr_Y0;
32170
32171 /* SystemInitialize for Outport: '<S623>/PX2_EgoLaneNearPosValid' */
32172 L4_MABX_B.SFunction1_o4_cbx = L4_MABX_P.PX2_EgoLaneNearPosValid_Y0_f;
32173
32174 /* SystemInitialize for Outport: '<S623>/PX2_EgoLaneMidPosValid' */
32175 L4_MABX_B.SFunction1_o5_p = L4_MABX_P.PX2_EgoLaneMidPosValid_Y0_c;
32176
32177 /* SystemInitialize for Outport: '<S623>/PX2_EgoLaneFarPosValid' */
32178 L4_MABX_B.SFunction1_o6_b = L4_MABX_P.PX2_EgoLaneFarPosValid_Y0_f;
32179
32180 /* SystemInitialize for Outport: '<S623>/RX status' */
32181 L4_MABX_B.SFunction1_o7_n = L4_MABX_P.RXstatus_Y0_fkm;
32182
32183 /* SystemInitialize for Outport: '<S623>/RX time' */
32184 L4_MABX_B.SFunction1_o8_p = L4_MABX_P.RXtime_Y0_ex;
32185
32186 /* SystemInitialize for Outport: '<S623>/RX delta time' */
32187 L4_MABX_B.SFunction1_o9_a = L4_MABX_P.RXdeltatime_Y0_b2;
32188
32189 /* End of SystemInitialize for SubSystem: '<S622>/PX2_EgoLanePos' */
32190
32191 /* SystemInitialize for Enabled SubSystem: '<S632>/VEP1' */
32192 /* SystemInitialize for Outport: '<S633>/NetBatteryCurrent' */
32193 L4_MABX_B.SFunction1_o1_b1 = L4_MABX_P.NetBatteryCurrent_Y0;
32194
32195 /* SystemInitialize for Outport: '<S633>/AltCurrent' */
32196 L4_MABX_B.SFunction1_o2_j3 = L4_MABX_P.AltCurrent_Y0;
32197
32198 /* SystemInitialize for Outport: '<S633>/ChargingSystemPotential' */
32199 L4_MABX_B.SFunction1_o3_pt = L4_MABX_P.ChargingSystemPotential_Y0;
32200
32201 /* SystemInitialize for Outport: '<S633>/BatteryPotential_PowerInput1' */
32202 L4_MABX_B.SFunction1_o4_fn = L4_MABX_P.BatteryPotential_PowerInput1_Y0;
32203
32204 /* SystemInitialize for Outport: '<S633>/KeyswitchBatteryPotential' */
32205 L4_MABX_B.SFunction1_o5 = L4_MABX_P.KeyswitchBatteryPotential_Y0;
32206
32207 /* SystemInitialize for Outport: '<S633>/RX status' */
32208 L4_MABX_B.SFunction1_o6 = L4_MABX_P.RXstatus_Y0_lw;
32209
32210 /* SystemInitialize for Outport: '<S633>/RX time' */
32211 L4_MABX_B.SFunction1_o7 = L4_MABX_P.RXtime_Y0_bq;
32212
32213 /* SystemInitialize for Outport: '<S633>/RX delta time' */
32214 L4_MABX_B.SFunction1_o8 = L4_MABX_P.RXdeltatime_Y0_pm;
32215
32216 /* End of SystemInitialize for SubSystem: '<S632>/VEP1' */
32217
32218 /* SystemInitialize for Enabled SubSystem: '<S455>/Decode_TPCM_CTS' */
32219 /* SystemInitialize for Outport: '<S674>/Out' */
32220 L4_MABX_B.SPN2556_ControlByte_jy = (uint8_T)L4_MABX_P.Out_Y0_g;
32221 L4_MABX_B.SPN2561_NumberOfPacketsThatCanB = (uint8_T)L4_MABX_P.Out_Y0_g;
32222 L4_MABX_B.SPN2562_NextPacketNumberToBeSen = (uint8_T)L4_MABX_P.Out_Y0_g;
32223 L4_MABX_B.DataType_fd = (uint32_T)L4_MABX_P.Out_Y0_g;
32224
32225 /* End of SystemInitialize for SubSystem: '<S455>/Decode_TPCM_CTS' */
32226
32227 /* SystemInitialize for Enabled SubSystem: '<S455>/Decode_TPCM_ConnectionAbort' */
32228 /* SystemInitialize for Outport: '<S675>/Out' */
32229 L4_MABX_B.SPN2556_ControlByte_d = (uint8_T)L4_MABX_P.Out_Y0_h;
32230 L4_MABX_B.SPN2570_ConnectionAbortReason = (uint8_T)L4_MABX_P.Out_Y0_h;
32231 L4_MABX_B.DataType_i5 = (uint32_T)L4_MABX_P.Out_Y0_h;
32232
32233 /* End of SystemInitialize for SubSystem: '<S455>/Decode_TPCM_ConnectionAbort' */
32234
32235 /* SystemInitialize for Enabled SubSystem: '<S455>/Decode_TPCM_EndOfMessageAck' */
32236 /* SystemInitialize for Outport: '<S676>/Out' */
32237 L4_MABX_B.SPN2556_ControlByte_j = (uint8_T)L4_MABX_P.Out_Y0_dx;
32238 L4_MABX_B.DataType_bq = (uint16_T)L4_MABX_P.Out_Y0_dx;
32239 L4_MABX_B.SPN2565_TotalNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_dx;
32240 L4_MABX_B.DataType_jy = (uint32_T)L4_MABX_P.Out_Y0_dx;
32241
32242 /* End of SystemInitialize for SubSystem: '<S455>/Decode_TPCM_EndOfMessageAck' */
32243
32244 /* SystemInitialize for Enabled SubSystem: '<S455>/Decode_TPCM_RTS' */
32245 /* SystemInitialize for Outport: '<S677>/Out' */
32246 L4_MABX_B.SPN2556_ControlByte = (uint8_T)L4_MABX_P.Out_Y0_k;
32247 L4_MABX_B.DataType_ph = (uint16_T)L4_MABX_P.Out_Y0_k;
32248 L4_MABX_B.SPN2558_TotalNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_k;
32249 L4_MABX_B.SPN2559_MaximumNumberOfPackets = (uint8_T)L4_MABX_P.Out_Y0_k;
32250 L4_MABX_B.DataType_g = (uint32_T)L4_MABX_P.Out_Y0_k;
32251
32252 /* End of SystemInitialize for SubSystem: '<S455>/Decode_TPCM_RTS' */
32253
32254 /* SystemInitialize for Enabled SubSystem: '<S568>/CAN_TYPE1_RX_M1_C1' */
32255 /* SystemInitialize for Outport: '<S572>/byte1' */
32256 L4_MABX_B.SFunction1_o1_lk = L4_MABX_P.byte1_Y0_k;
32257
32258 /* SystemInitialize for Outport: '<S572>/byte2' */
32259 L4_MABX_B.SFunction1_o2_hv = L4_MABX_P.byte2_Y0_a;
32260
32261 /* SystemInitialize for Outport: '<S572>/byte3' */
32262 L4_MABX_B.SFunction1_o3_d0 = L4_MABX_P.byte3_Y0_a;
32263
32264 /* SystemInitialize for Outport: '<S572>/byte4' */
32265 L4_MABX_B.SFunction1_o4_j2 = L4_MABX_P.byte4_Y0_e;
32266
32267 /* SystemInitialize for Outport: '<S572>/byte5' */
32268 L4_MABX_B.SFunction1_o5_pv = L4_MABX_P.byte5_Y0_m;
32269
32270 /* SystemInitialize for Outport: '<S572>/byte6' */
32271 L4_MABX_B.SFunction1_o6_d3 = L4_MABX_P.byte6_Y0_nh;
32272
32273 /* SystemInitialize for Outport: '<S572>/byte7' */
32274 L4_MABX_B.SFunction1_o7_k = L4_MABX_P.byte7_Y0_lq;
32275
32276 /* SystemInitialize for Outport: '<S572>/byte8' */
32277 L4_MABX_B.SFunction1_o8_pv = L4_MABX_P.byte8_Y0_h;
32278
32279 /* SystemInitialize for Outport: '<S572>/RX status' */
32280 L4_MABX_B.SFunction1_o9_n2 = L4_MABX_P.RXstatus_Y0_lg;
32281
32282 /* SystemInitialize for Outport: '<S572>/RX time' */
32283 L4_MABX_B.SFunction1_o10_ag = L4_MABX_P.RXtime_Y0_fm;
32284
32285 /* SystemInitialize for Outport: '<S572>/RX delta time' */
32286 L4_MABX_B.SFunction1_o11_nf = L4_MABX_P.RXdeltatime_Y0_kv;
32287
32288 /* End of SystemInitialize for SubSystem: '<S568>/CAN_TYPE1_RX_M1_C1' */
32289
32290 /* SystemInitialize for Enabled SubSystem: '<S569>/CAN_TYPE1_RX_M1_C2' */
32291 /* SystemInitialize for Outport: '<S573>/byte1' */
32292 L4_MABX_B.SFunction1_o1_i4 = L4_MABX_P.byte1_Y0_p;
32293
32294 /* SystemInitialize for Outport: '<S573>/byte2' */
32295 L4_MABX_B.SFunction1_o2_by = L4_MABX_P.byte2_Y0_j;
32296
32297 /* SystemInitialize for Outport: '<S573>/byte3' */
32298 L4_MABX_B.SFunction1_o3_be = L4_MABX_P.byte3_Y0_n;
32299
32300 /* SystemInitialize for Outport: '<S573>/byte4' */
32301 L4_MABX_B.SFunction1_o4_fnt = L4_MABX_P.byte4_Y0_o;
32302
32303 /* SystemInitialize for Outport: '<S573>/byte5' */
32304 L4_MABX_B.SFunction1_o5_lm = L4_MABX_P.byte5_Y0_p;
32305
32306 /* SystemInitialize for Outport: '<S573>/byte6' */
32307 L4_MABX_B.SFunction1_o6_ol = L4_MABX_P.byte6_Y0_g;
32308
32309 /* SystemInitialize for Outport: '<S573>/byte7' */
32310 L4_MABX_B.SFunction1_o7_go = L4_MABX_P.byte7_Y0_k;
32311
32312 /* SystemInitialize for Outport: '<S573>/byte8' */
32313 L4_MABX_B.SFunction1_o8_fm0 = L4_MABX_P.byte8_Y0_g;
32314
32315 /* SystemInitialize for Outport: '<S573>/RX status' */
32316 L4_MABX_B.SFunction1_o9_g = L4_MABX_P.RXstatus_Y0_af;
32317
32318 /* SystemInitialize for Outport: '<S573>/RX time' */
32319 L4_MABX_B.SFunction1_o10_i = L4_MABX_P.RXtime_Y0_ac2;
32320
32321 /* SystemInitialize for Outport: '<S573>/RX delta time' */
32322 L4_MABX_B.SFunction1_o11_l = L4_MABX_P.RXdeltatime_Y0_lp;
32323
32324 /* End of SystemInitialize for SubSystem: '<S569>/CAN_TYPE1_RX_M1_C2' */
32325
32326 /* SystemInitialize for Enabled SubSystem: '<S570>/CAN_TYPE1_RX_M3_C2' */
32327 /* SystemInitialize for Outport: '<S574>/byte1' */
32328 L4_MABX_B.SFunction1_o1_hs = L4_MABX_P.byte1_Y0_k5;
32329
32330 /* SystemInitialize for Outport: '<S574>/byte2' */
32331 L4_MABX_B.SFunction1_o2_oh = L4_MABX_P.byte2_Y0_jq;
32332
32333 /* SystemInitialize for Outport: '<S574>/byte3' */
32334 L4_MABX_B.SFunction1_o3_f = L4_MABX_P.byte3_Y0_m;
32335
32336 /* SystemInitialize for Outport: '<S574>/byte4' */
32337 L4_MABX_B.SFunction1_o4_gs2 = L4_MABX_P.byte4_Y0_b;
32338
32339 /* SystemInitialize for Outport: '<S574>/byte5' */
32340 L4_MABX_B.SFunction1_o5_cw = L4_MABX_P.byte5_Y0_f;
32341
32342 /* SystemInitialize for Outport: '<S574>/byte6' */
32343 L4_MABX_B.SFunction1_o6_es = L4_MABX_P.byte6_Y0_h;
32344
32345 /* SystemInitialize for Outport: '<S574>/byte7' */
32346 L4_MABX_B.SFunction1_o7_dz = L4_MABX_P.byte7_Y0_i;
32347
32348 /* SystemInitialize for Outport: '<S574>/byte8' */
32349 L4_MABX_B.SFunction1_o8_fm = L4_MABX_P.byte8_Y0_c;
32350
32351 /* SystemInitialize for Outport: '<S574>/RX status' */
32352 L4_MABX_B.SFunction1_o9_op = L4_MABX_P.RXstatus_Y0_b;
32353
32354 /* SystemInitialize for Outport: '<S574>/RX time' */
32355 L4_MABX_B.SFunction1_o10_k = L4_MABX_P.RXtime_Y0_i5;
32356
32357 /* SystemInitialize for Outport: '<S574>/RX delta time' */
32358 L4_MABX_B.SFunction1_o11_aw = L4_MABX_P.RXdeltatime_Y0_nv;
32359
32360 /* End of SystemInitialize for SubSystem: '<S570>/CAN_TYPE1_RX_M3_C2' */
32361
32362 /* SystemInitialize for Enabled SubSystem: '<S581>/CAN_TYPE1_RX_M1_C1' */
32363 /* SystemInitialize for Outport: '<S585>/byte1' */
32364 L4_MABX_B.SFunction1_o1_h0 = L4_MABX_P.byte1_Y0_k2;
32365
32366 /* SystemInitialize for Outport: '<S585>/byte2' */
32367 L4_MABX_B.SFunction1_o2_ij = L4_MABX_P.byte2_Y0_k;
32368
32369 /* SystemInitialize for Outport: '<S585>/byte3' */
32370 L4_MABX_B.SFunction1_o3_h21 = L4_MABX_P.byte3_Y0_d;
32371
32372 /* SystemInitialize for Outport: '<S585>/byte4' */
32373 L4_MABX_B.SFunction1_o4_hg = L4_MABX_P.byte4_Y0_n;
32374
32375 /* SystemInitialize for Outport: '<S585>/byte5' */
32376 L4_MABX_B.SFunction1_o5_f5 = L4_MABX_P.byte5_Y0_j;
32377
32378 /* SystemInitialize for Outport: '<S585>/byte6' */
32379 L4_MABX_B.SFunction1_o6_o = L4_MABX_P.byte6_Y0_m;
32380
32381 /* SystemInitialize for Outport: '<S585>/byte7' */
32382 L4_MABX_B.SFunction1_o7_b = L4_MABX_P.byte7_Y0_kn;
32383
32384 /* SystemInitialize for Outport: '<S585>/byte8' */
32385 L4_MABX_B.SFunction1_o8_pk = L4_MABX_P.byte8_Y0_k;
32386
32387 /* SystemInitialize for Outport: '<S585>/RX status' */
32388 L4_MABX_B.SFunction1_o9_p = L4_MABX_P.RXstatus_Y0_dy;
32389
32390 /* SystemInitialize for Outport: '<S585>/RX time' */
32391 L4_MABX_B.SFunction1_o10_ds = L4_MABX_P.RXtime_Y0_fn;
32392
32393 /* SystemInitialize for Outport: '<S585>/RX delta time' */
32394 L4_MABX_B.SFunction1_o11_g = L4_MABX_P.RXdeltatime_Y0_ds;
32395
32396 /* End of SystemInitialize for SubSystem: '<S581>/CAN_TYPE1_RX_M1_C1' */
32397
32398 /* SystemInitialize for Enabled SubSystem: '<S582>/CAN_TYPE1_RX_M1_C2' */
32399 /* SystemInitialize for Outport: '<S586>/byte1' */
32400 L4_MABX_B.SFunction1_o1_k = L4_MABX_P.byte1_Y0_h;
32401
32402 /* SystemInitialize for Outport: '<S586>/byte2' */
32403 L4_MABX_B.SFunction1_o2_lt = L4_MABX_P.byte2_Y0_kg;
32404
32405 /* SystemInitialize for Outport: '<S586>/byte3' */
32406 L4_MABX_B.SFunction1_o3_lj = L4_MABX_P.byte3_Y0_k;
32407
32408 /* SystemInitialize for Outport: '<S586>/byte4' */
32409 L4_MABX_B.SFunction1_o4_g2 = L4_MABX_P.byte4_Y0_ll;
32410
32411 /* SystemInitialize for Outport: '<S586>/byte5' */
32412 L4_MABX_B.SFunction1_o5_l = L4_MABX_P.byte5_Y0_k;
32413
32414 /* SystemInitialize for Outport: '<S586>/byte6' */
32415 L4_MABX_B.SFunction1_o6_eq = L4_MABX_P.byte6_Y0_o;
32416
32417 /* SystemInitialize for Outport: '<S586>/byte7' */
32418 L4_MABX_B.SFunction1_o7_c = L4_MABX_P.byte7_Y0_a;
32419
32420 /* SystemInitialize for Outport: '<S586>/byte8' */
32421 L4_MABX_B.SFunction1_o8_gr = L4_MABX_P.byte8_Y0_b;
32422
32423 /* SystemInitialize for Outport: '<S586>/RX status' */
32424 L4_MABX_B.SFunction1_o9_c = L4_MABX_P.RXstatus_Y0_gy;
32425
32426 /* SystemInitialize for Outport: '<S586>/RX time' */
32427 L4_MABX_B.SFunction1_o10_d = L4_MABX_P.RXtime_Y0_d;
32428
32429 /* SystemInitialize for Outport: '<S586>/RX delta time' */
32430 L4_MABX_B.SFunction1_o11_ad = L4_MABX_P.RXdeltatime_Y0_k0w;
32431
32432 /* End of SystemInitialize for SubSystem: '<S582>/CAN_TYPE1_RX_M1_C2' */
32433
32434 /* SystemInitialize for Enabled SubSystem: '<S583>/CAN_TYPE1_RX_M3_C2' */
32435 /* SystemInitialize for Outport: '<S587>/byte1' */
32436 L4_MABX_B.SFunction1_o1_oa = L4_MABX_P.byte1_Y0_i;
32437
32438 /* SystemInitialize for Outport: '<S587>/byte2' */
32439 L4_MABX_B.SFunction1_o2_bm = L4_MABX_P.byte2_Y0_p;
32440
32441 /* SystemInitialize for Outport: '<S587>/byte3' */
32442 L4_MABX_B.SFunction1_o3_dl = L4_MABX_P.byte3_Y0_j;
32443
32444 /* SystemInitialize for Outport: '<S587>/byte4' */
32445 L4_MABX_B.SFunction1_o4_gd = L4_MABX_P.byte4_Y0_k;
32446
32447 /* SystemInitialize for Outport: '<S587>/byte5' */
32448 L4_MABX_B.SFunction1_o5_k = L4_MABX_P.byte5_Y0_g;
32449
32450 /* SystemInitialize for Outport: '<S587>/byte6' */
32451 L4_MABX_B.SFunction1_o6_iy = L4_MABX_P.byte6_Y0_j;
32452
32453 /* SystemInitialize for Outport: '<S587>/byte7' */
32454 L4_MABX_B.SFunction1_o7_nw = L4_MABX_P.byte7_Y0_at;
32455
32456 /* SystemInitialize for Outport: '<S587>/byte8' */
32457 L4_MABX_B.SFunction1_o8_ki = L4_MABX_P.byte8_Y0_e;
32458
32459 /* SystemInitialize for Outport: '<S587>/RX status' */
32460 L4_MABX_B.SFunction1_o9_n = L4_MABX_P.RXstatus_Y0_fk;
32461
32462 /* SystemInitialize for Outport: '<S587>/RX time' */
32463 L4_MABX_B.SFunction1_o10_g = L4_MABX_P.RXtime_Y0_pl;
32464
32465 /* SystemInitialize for Outport: '<S587>/RX delta time' */
32466 L4_MABX_B.SFunction1_o11_n = L4_MABX_P.RXdeltatime_Y0_g2;
32467
32468 /* End of SystemInitialize for SubSystem: '<S583>/CAN_TYPE1_RX_M3_C2' */
32469
32470 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
32471 /* InitializeConditions for UnitDelay: '<S30>/Unit_Delay' */
32472 L4_MABX_DW.Unit_Delay_DSTATE_f1 = L4_MABX_P.Unit_Delay_InitialCondition_e3;
32473
32474 /* InitializeConditions for UnitDelay: '<S31>/Unit Delay' */
32475 L4_MABX_DW.UnitDelay_DSTATE_j = L4_MABX_P.UnitDelay_InitialCondition_n;
32476
32477 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_1' */
32478
32479 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
32480 /* InitializeConditions for UnitDelay: '<S54>/Unit_Delay' */
32481 L4_MABX_DW.Unit_Delay_DSTATE_i5 = L4_MABX_P.Unit_Delay_InitialCondition_o;
32482
32483 /* InitializeConditions for UnitDelay: '<S55>/Unit Delay' */
32484 L4_MABX_DW.UnitDelay_DSTATE_p = L4_MABX_P.UnitDelay_InitialCondition_p;
32485
32486 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_5' */
32487
32488 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
32489 /* InitializeConditions for UnitDelay: '<S60>/Unit_Delay' */
32490 L4_MABX_DW.Unit_Delay_DSTATE_l5 = L4_MABX_P.Unit_Delay_InitialCondition_le;
32491
32492 /* InitializeConditions for UnitDelay: '<S61>/Unit Delay' */
32493 L4_MABX_DW.UnitDelay_DSTATE_dr = L4_MABX_P.UnitDelay_InitialCondition_i;
32494
32495 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_6' */
32496
32497 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
32498 /* InitializeConditions for UnitDelay: '<S42>/Unit_Delay' */
32499 L4_MABX_DW.Unit_Delay_DSTATE_h41 = L4_MABX_P.Unit_Delay_InitialCondition_m;
32500
32501 /* InitializeConditions for UnitDelay: '<S43>/Unit Delay' */
32502 L4_MABX_DW.UnitDelay_DSTATE_dr4 = L4_MABX_P.UnitDelay_InitialCondition_hk;
32503
32504 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_3' */
32505
32506 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
32507 /* InitializeConditions for UnitDelay: '<S48>/Unit_Delay' */
32508 L4_MABX_DW.Unit_Delay_DSTATE_mq = L4_MABX_P.Unit_Delay_InitialCondition_bo;
32509
32510 /* InitializeConditions for UnitDelay: '<S49>/Unit Delay' */
32511 L4_MABX_DW.UnitDelay_DSTATE_h = L4_MABX_P.UnitDelay_InitialCondition_l;
32512
32513 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_4' */
32514
32515 /* SystemInitialize for Enabled SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
32516 /* InitializeConditions for UnitDelay: '<S36>/Unit_Delay' */
32517 L4_MABX_DW.Unit_Delay_DSTATE_je = L4_MABX_P.Unit_Delay_InitialCondition_in;
32518
32519 /* InitializeConditions for UnitDelay: '<S37>/Unit Delay' */
32520 L4_MABX_DW.UnitDelay_DSTATE_b = L4_MABX_P.UnitDelay_InitialCondition_m;
32521
32522 /* End of SystemInitialize for SubSystem: '<S1>/BUS_OFF_RECOVERY_2' */
32523 }
32524}
32525
32526/* Model terminate function */
32527void L4_MABX_terminate(void)
32528{
32529 /* Terminate for Atomic SubSystem: '<S815>/CAN_TX_1000ms' */
32530
32531 /* Terminate for Enabled SubSystem: '<S835>/AIR1' */
32532
32533 /* Terminate for S-Function (rti_commonblock): '<S836>/S-Function1' */
32534
32535 /* dSPACE RTICAN TX Message Block: "AIR1" Id:419343921 */
32536 {
32537 /* ... Set the message into sleep mode */
32538 while ((rtican_type1_tq_error[1][3] = can_tp1_msg_sleep
32539 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEAE31])) ==
32540 DSMCOM_BUFFER_OVERFLOW) ;
32541 }
32542
32543 /* End of Terminate for SubSystem: '<S835>/AIR1' */
32544
32545 /* Terminate for Enabled SubSystem: '<S843>/AMB' */
32546
32547 /* Terminate for S-Function (rti_commonblock): '<S844>/S-Function1' */
32548
32549 /* dSPACE RTICAN TX Message Block: "AMB" Id:419362048 */
32550 {
32551 /* ... Set the message into sleep mode */
32552 while ((rtican_type1_tq_error[1][4] = can_tp1_msg_sleep
32553 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18FEF500])) ==
32554 DSMCOM_BUFFER_OVERFLOW) ;
32555 }
32556
32557 /* End of Terminate for SubSystem: '<S843>/AMB' */
32558
32559 /* End of Terminate for SubSystem: '<S815>/CAN_TX_1000ms' */
32560
32561 /* Terminate for S-Function (dsa_tcpip_setup_sfcn): '<S386>/dsa_tcpip_setup' */
32562 /* Level2 S-Function Block: '<S386>/dsa_tcpip_setup' (dsa_tcpip_setup_sfcn) */
32563 {
32564 SimStruct *rts = L4_MABX_M->childSfunctions[3];
32565 sfcnTerminate(rts);
32566 }
32567
32568 /* Terminate for S-Function (dsa_tcpip_udp_sfcn): '<S387>/TCPIP_Com' */
32569 /* Level2 S-Function Block: '<S387>/TCPIP_Com' (dsa_tcpip_udp_sfcn) */
32570 {
32571 SimStruct *rts = L4_MABX_M->childSfunctions[4];
32572 sfcnTerminate(rts);
32573 }
32574
32575 /* Terminate for Atomic SubSystem: '<S815>/CAN_TX_100ms' */
32576
32577 /* Terminate for Enabled SubSystem: '<S874>/PropB_XPR_FC' */
32578
32579 /* Terminate for S-Function (rti_commonblock): '<S876>/S-Function1' */
32580
32581 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
32582 {
32583 /* ... Set the message into sleep mode */
32584 while ((rtican_type1_tq_error[0][4] = can_tp1_msg_sleep
32585 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18FF04FC])) ==
32586 DSMCOM_BUFFER_OVERFLOW) ;
32587 }
32588
32589 /* End of Terminate for SubSystem: '<S874>/PropB_XPR_FC' */
32590
32591 /* Terminate for Enabled SubSystem: '<S875>/PropB_XPR_FC' */
32592
32593 /* Terminate for S-Function (rti_commonblock): '<S877>/S-Function1' */
32594
32595 /* dSPACE RTICAN TX Message Block: "PropB_XPR_FC" Id:419366140 */
32596 {
32597 /* ... Set the message into sleep mode */
32598 while ((rtican_type1_tq_error[1][4] = can_tp1_msg_sleep
32599 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FF04FC])) ==
32600 DSMCOM_BUFFER_OVERFLOW) ;
32601 }
32602
32603 /* End of Terminate for SubSystem: '<S875>/PropB_XPR_FC' */
32604
32605 /* Terminate for Enabled SubSystem: '<S904>/Std_PosRapidUpdate_01' */
32606
32607 /* Terminate for S-Function (rti_commonblock): '<S905>/S-Function1' */
32608
32609 /* dSPACE RTICAN TX Message Block: "Std_PosRapidUpdate_01" Id:3 */
32610 {
32611 /* ... Set the message into sleep mode */
32612 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
32613 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X3])) ==
32614 DSMCOM_BUFFER_OVERFLOW) ;
32615 }
32616
32617 /* End of Terminate for SubSystem: '<S904>/Std_PosRapidUpdate_01' */
32618
32619 /* Terminate for Enabled SubSystem: '<S854>/CCVS1_00' */
32620
32621 /* Terminate for S-Function (rti_commonblock): '<S856>/S-Function1' */
32622
32623 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:419361024 */
32624 {
32625 /* ... Set the message into sleep mode */
32626 while ((rtican_type1_tq_error[0][3] = can_tp1_msg_sleep
32627 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FEF100])) ==
32628 DSMCOM_BUFFER_OVERFLOW) ;
32629 }
32630
32631 /* End of Terminate for SubSystem: '<S854>/CCVS1_00' */
32632
32633 /* Terminate for Enabled SubSystem: '<S855>/CCVS1_00' */
32634
32635 /* Terminate for S-Function (rti_commonblock): '<S857>/S-Function1' */
32636
32637 /* dSPACE RTICAN TX Message Block: "CCVS1_00" Id:218034432 */
32638 {
32639 /* ... Set the message into sleep mode */
32640 while ((rtican_type1_tq_error[2][3] = can_tp1_msg_sleep
32641 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0XCFEF100])) ==
32642 DSMCOM_BUFFER_OVERFLOW) ;
32643 }
32644
32645 /* End of Terminate for SubSystem: '<S855>/CCVS1_00' */
32646
32647 /* Terminate for Enabled SubSystem: '<S858>/PropB_REAX_5_E4' */
32648
32649 /* Terminate for S-Function (rti_commonblock): '<S860>/S-Function1' incorporates:
32650 * Constant: '<S858>/Constant'
32651 * Constant: '<S858>/Constant1'
32652 */
32653
32654 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
32655 {
32656 /* ... Set the message into sleep mode */
32657 while ((rtican_type1_tq_error[0][5] = can_tp1_msg_sleep
32658 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFFAE4])) ==
32659 DSMCOM_BUFFER_OVERFLOW) ;
32660 }
32661
32662 /* End of Terminate for SubSystem: '<S858>/PropB_REAX_5_E4' */
32663
32664 /* Terminate for Enabled SubSystem: '<S859>/PropB_REAX_5_E4' */
32665
32666 /* Terminate for S-Function (rti_commonblock): '<S861>/S-Function1' incorporates:
32667 * Constant: '<S859>/Constant'
32668 * Constant: '<S859>/Constant1'
32669 */
32670
32671 /* dSPACE RTICAN TX Message Block: "PropB_REAX_5_E4" Id:419429092 */
32672 {
32673 /* ... Set the message into sleep mode */
32674 while ((rtican_type1_tq_error[2][5] = can_tp1_msg_sleep
32675 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFFAE4])) ==
32676 DSMCOM_BUFFER_OVERFLOW) ;
32677 }
32678
32679 /* End of Terminate for SubSystem: '<S859>/PropB_REAX_5_E4' */
32680
32681 /* Terminate for Enabled SubSystem: '<S878>/Std_COGSOGRapidUpdate_01' */
32682
32683 /* Terminate for S-Function (rti_commonblock): '<S879>/S-Function1' incorporates:
32684 * Constant: '<S878>/Constant'
32685 * Constant: '<S878>/Constant1'
32686 */
32687
32688 /* dSPACE RTICAN TX Message Block: "Std_COGSOGRapidUpdate_01" Id:7 */
32689 {
32690 /* ... Set the message into sleep mode */
32691 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
32692 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X7])) ==
32693 DSMCOM_BUFFER_OVERFLOW) ;
32694 }
32695
32696 /* End of Terminate for SubSystem: '<S878>/Std_COGSOGRapidUpdate_01' */
32697
32698 /* Terminate for Enabled SubSystem: '<S880>/EBC1_TX' */
32699
32700 /* Terminate for S-Function (rti_commonblock): '<S881>/S-Function1' */
32701
32702 /* dSPACE RTICAN TX Message Block: "EBC1_TX" Id:418382219 */
32703 {
32704 /* ... Set the message into sleep mode */
32705 while ((rtican_type1_tq_error[0][2] = can_tp1_msg_sleep
32706 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18F0018B])) ==
32707 DSMCOM_BUFFER_OVERFLOW) ;
32708 }
32709
32710 /* End of Terminate for SubSystem: '<S880>/EBC1_TX' */
32711
32712 /* End of Terminate for SubSystem: '<S815>/CAN_TX_100ms' */
32713
32714 /* Terminate for Atomic SubSystem: '<S815>/CAN_TX_10ms' */
32715
32716 /* Terminate for Enabled SubSystem: '<S917>/ACCS' */
32717
32718 /* Terminate for S-Function (rti_commonblock): '<S918>/S-Function1' */
32719
32720 /* dSPACE RTICAN TX Message Block: "ACCS" Id:418393572 */
32721 {
32722 /* ... Set the message into sleep mode */
32723 while ((rtican_type1_tq_error[1][3] = can_tp1_msg_sleep
32724 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0X18F02DE4])) ==
32725 DSMCOM_BUFFER_OVERFLOW) ;
32726 }
32727
32728 /* End of Terminate for SubSystem: '<S917>/ACCS' */
32729
32730 /* Terminate for Enabled SubSystem: '<S925>/EEC1_00' */
32731
32732 /* Terminate for S-Function (rti_commonblock): '<S927>/S-Function1' */
32733
32734 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
32735 {
32736 /* ... Set the message into sleep mode */
32737 while ((rtican_type1_tq_error[1][1] = can_tp1_msg_sleep
32738 (can_type1_msg_M2[CANTP1_M2_C2_TX_XTD_0XCF00400])) ==
32739 DSMCOM_BUFFER_OVERFLOW) ;
32740 }
32741
32742 /* End of Terminate for SubSystem: '<S925>/EEC1_00' */
32743
32744 /* Terminate for Enabled SubSystem: '<S926>/EEC1_00' */
32745
32746 /* Terminate for S-Function (rti_commonblock): '<S928>/S-Function1' */
32747
32748 /* dSPACE RTICAN TX Message Block: "EEC1_00" Id:217056256 */
32749 {
32750 /* ... Set the message into sleep mode */
32751 while ((rtican_type1_tq_error[2][3] = can_tp1_msg_sleep
32752 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0XCF00400])) ==
32753 DSMCOM_BUFFER_OVERFLOW) ;
32754 }
32755
32756 /* End of Terminate for SubSystem: '<S926>/EEC1_00' */
32757
32758 /* Terminate for Enabled SubSystem: '<S929>/PropB_REAX_1_E4' */
32759
32760 /* Terminate for S-Function (rti_commonblock): '<S931>/S-Function1' incorporates:
32761 * Constant: '<S929>/Constant'
32762 * Constant: '<S929>/Constant1'
32763 */
32764
32765 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
32766 {
32767 /* ... Set the message into sleep mode */
32768 while ((rtican_type1_tq_error[0][4] = can_tp1_msg_sleep
32769 (can_type1_msg_M1[CANTP1_M1_C2_TX_XTD_0X18FFEFE4])) ==
32770 DSMCOM_BUFFER_OVERFLOW) ;
32771 }
32772
32773 /* End of Terminate for SubSystem: '<S929>/PropB_REAX_1_E4' */
32774
32775 /* Terminate for Enabled SubSystem: '<S930>/PropB_REAX_1_E4' */
32776
32777 /* Terminate for S-Function (rti_commonblock): '<S932>/S-Function1' incorporates:
32778 * Constant: '<S930>/Constant'
32779 * Constant: '<S930>/Constant1'
32780 */
32781
32782 /* dSPACE RTICAN TX Message Block: "PropB_REAX_1_E4" Id:419426276 */
32783 {
32784 /* ... Set the message into sleep mode */
32785 while ((rtican_type1_tq_error[2][4] = can_tp1_msg_sleep
32786 (can_type1_msg_M3[CANTP1_M3_C2_TX_XTD_0X18FFEFE4])) ==
32787 DSMCOM_BUFFER_OVERFLOW) ;
32788 }
32789
32790 /* End of Terminate for SubSystem: '<S930>/PropB_REAX_1_E4' */
32791
32792 /* Terminate for Enabled SubSystem: '<S939>/VDC2_0B' */
32793
32794 /* Terminate for S-Function (rti_commonblock): '<S940>/S-Function1' */
32795
32796 /* dSPACE RTICAN TX Message Block: "VDC2_0B" Id:418384139 */
32797 {
32798 /* ... Set the message into sleep mode */
32799 while ((rtican_type1_tq_error[2][4] = can_tp1_msg_sleep
32800 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18F0090B])) ==
32801 DSMCOM_BUFFER_OVERFLOW) ;
32802 }
32803
32804 /* End of Terminate for SubSystem: '<S939>/VDC2_0B' */
32805
32806 /* End of Terminate for SubSystem: '<S815>/CAN_TX_10ms' */
32807
32808 /* Terminate for Atomic SubSystem: '<S815>/CAN_TX_20ms' */
32809
32810 /* Terminate for Enabled SubSystem: '<S984>/PropB_XBR_B3' */
32811
32812 /* Terminate for S-Function (rti_commonblock): '<S985>/S-Function1' */
32813
32814 /* dSPACE RTICAN TX Message Block: "PropB_XBR_B3" Id:218038707 */
32815 {
32816 /* ... Set the message into sleep mode */
32817 while ((rtican_type1_tq_error[1][2] = can_tp1_msg_sleep
32818 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF01B3])) ==
32819 DSMCOM_BUFFER_OVERFLOW) ;
32820 }
32821
32822 /* End of Terminate for SubSystem: '<S984>/PropB_XBR_B3' */
32823
32824 /* Terminate for Enabled SubSystem: '<S986>/PropB_Bendix_2C2_XPR' */
32825
32826 /* Terminate for S-Function (rti_commonblock): '<S987>/S-Function1' */
32827
32828 /* dSPACE RTICAN TX Message Block: "PropB_Bendix_2C2_XPR" Id:218060389 */
32829 {
32830 /* ... Set the message into sleep mode */
32831 while ((rtican_type1_tq_error[1][2] = can_tp1_msg_sleep
32832 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0XCFF5665])) ==
32833 DSMCOM_BUFFER_OVERFLOW) ;
32834 }
32835
32836 /* End of Terminate for SubSystem: '<S986>/PropB_Bendix_2C2_XPR' */
32837
32838 /* Terminate for Enabled SubSystem: '<S994>/Std_OdometryData' */
32839
32840 /* Terminate for S-Function (rti_commonblock): '<S995>/S-Function1' */
32841
32842 /* dSPACE RTICAN TX Message Block: "Std_OdometryData" Id:10 */
32843 {
32844 /* ... Set the message into sleep mode */
32845 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
32846 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0XA])) ==
32847 DSMCOM_BUFFER_OVERFLOW) ;
32848 }
32849
32850 /* End of Terminate for SubSystem: '<S994>/Std_OdometryData' */
32851
32852 /* End of Terminate for SubSystem: '<S815>/CAN_TX_20ms' */
32853
32854 /* Terminate for Atomic SubSystem: '<S815>/CAN_TX_5000ms' */
32855
32856 /* Terminate for Enabled SubSystem: '<S1009>/RQST_13_E4' */
32857
32858 /* Terminate for S-Function (rti_commonblock): '<S1011>/S-Function1' */
32859
32860 /* dSPACE RTICAN TX Message Block: "RQST_13_E4" Id:417993700 */
32861 {
32862 /* ... Set the message into sleep mode */
32863 while ((rtican_type1_tq_error[2][3] = can_tp1_msg_sleep
32864 (can_type1_msg_M3[CANTP1_M3_C1_TX_XTD_0X18EA13E4])) ==
32865 DSMCOM_BUFFER_OVERFLOW) ;
32866 }
32867
32868 /* End of Terminate for SubSystem: '<S1009>/RQST_13_E4' */
32869
32870 /* End of Terminate for SubSystem: '<S815>/CAN_TX_5000ms' */
32871
32872 /* Terminate for Atomic SubSystem: '<S815>/CAN_TX_50ms' */
32873
32874 /* Terminate for Enabled SubSystem: '<S1020>/CCVS1_E3' */
32875
32876 /* Terminate for S-Function (rti_commonblock): '<S1022>/S-Function1' */
32877
32878 /* dSPACE RTICAN TX Message Block: "CCVS1_E3" Id:419361251 */
32879 {
32880 /* ... Set the message into sleep mode */
32881 while ((rtican_type1_tq_error[1][3] = can_tp1_msg_sleep
32882 (can_type1_msg_M2[CANTP1_M2_C1_TX_XTD_0X18FEF1E3])) ==
32883 DSMCOM_BUFFER_OVERFLOW) ;
32884 }
32885
32886 /* End of Terminate for SubSystem: '<S1020>/CCVS1_E3' */
32887
32888 /* Terminate for Enabled SubSystem: '<S1021>/TC1_03_05' */
32889
32890 /* Terminate for S-Function (rti_commonblock): '<S1023>/S-Function1' */
32891
32892 /* dSPACE RTICAN TX Message Block: "TC1_03_05" Id:201392901 */
32893 {
32894 /* ... Set the message into sleep mode */
32895 while ((rtican_type1_tq_error[0][0] = can_tp1_msg_sleep
32896 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0XC010305])) ==
32897 DSMCOM_BUFFER_OVERFLOW) ;
32898 }
32899
32900 /* End of Terminate for SubSystem: '<S1021>/TC1_03_05' */
32901
32902 /* End of Terminate for SubSystem: '<S815>/CAN_TX_50ms' */
32903
32904 /* Terminate for Enabled SubSystem: '<S1033>/Std_SystemTime_01' */
32905
32906 /* Terminate for S-Function (rti_commonblock): '<S1035>/S-Function1' incorporates:
32907 * Constant: '<S1033>/Constant'
32908 * Constant: '<S1033>/Constant1'
32909 */
32910
32911 /* dSPACE RTICAN TX Message Block: "Std_SystemTime_01" Id:5 */
32912 {
32913 /* ... Set the message into sleep mode */
32914 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
32915 (can_type1_msg_M3[CANTP1_M3_C2_TX_STD_0X5])) ==
32916 DSMCOM_BUFFER_OVERFLOW) ;
32917 }
32918
32919 /* End of Terminate for SubSystem: '<S1033>/Std_SystemTime_01' */
32920
32921 /* Terminate for Triggered SubSystem: '<S1028>/CAN_TYPE1_TX_M1_C1' */
32922
32923 /* Terminate for S-Function (rti_commonblock): '<S1030>/S-Function1' */
32924
32925 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418184965 */
32926 {
32927 /* ... Set the message into sleep mode */
32928 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
32929 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18ECFF05])) ==
32930 DSMCOM_BUFFER_OVERFLOW) ;
32931 }
32932
32933 /* End of Terminate for SubSystem: '<S1028>/CAN_TYPE1_TX_M1_C1' */
32934
32935 /* Terminate for Triggered SubSystem: '<S1029>/CAN_TYPE1_TX_M1_C1' */
32936
32937 /* Terminate for S-Function (rti_commonblock): '<S1031>/S-Function1' */
32938
32939 /* dSPACE RTICAN TX Message Block: "TX Message" Id:418119429 */
32940 {
32941 /* ... Set the message into sleep mode */
32942 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
32943 (can_type1_msg_M1[CANTP1_M1_C1_TX_XTD_0X18EBFF05])) ==
32944 DSMCOM_BUFFER_OVERFLOW) ;
32945 }
32946
32947 /* End of Terminate for SubSystem: '<S1029>/CAN_TYPE1_TX_M1_C1' */
32948
32949 /* Terminate for S-Function (rti_commonblock): '<S1036>/S-Function1' */
32950
32951 /* disable digital output channel 4 on port 1 *
32952 * (set to high-impedance), when the simulation terminates */
32953 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH4,
32954 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
32955
32956 /* Terminate for S-Function (rti_commonblock): '<S1037>/S-Function1' */
32957
32958 /* disable digital output channel 2 on port 1 *
32959 * (set to high-impedance), when the simulation terminates */
32960 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH2,
32961 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
32962
32963 /* Terminate for S-Function (rti_commonblock): '<S1038>/S-Function1' */
32964
32965 /* disable digital output channel 1 on port 1 *
32966 * (set to high-impedance), when the simulation terminates */
32967 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH1,
32968 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
32969
32970 /* Terminate for S-Function (rti_commonblock): '<S1039>/S-Function1' */
32971
32972 /* disable digital output channel 3 on port 1 *
32973 * (set to high-impedance), when the simulation terminates */
32974 dio_tp4_digout_init(DIO_TP4_1_MODULE_ADDR, 1, DIO_TP4_MASK_CH3,
32975 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE);
32976
32977 /* Terminate for S-Function (rti_commonblock): '<S1040>/S-Function1' */
32978
32979 /* disable digital output channel 1 on port 2 *
32980 * (set to high-impedance), when the simulation terminates */
32981 dio_tp4_pwm_init(DIO_TP4_1_MODULE_ADDR, 2, DIO_TP4_MASK_CH1,
32982 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE, DIO_TP4_TIMING_RANGE2,
32983 DIO_TP4_PWM);
32984
32985 /* Terminate for S-Function (rti_commonblock): '<S1041>/S-Function1' */
32986
32987 /* disable digital output channel 2 on port 2 *
32988 * (set to high-impedance), when the simulation terminates */
32989 dio_tp4_pwm_init(DIO_TP4_1_MODULE_ADDR, 2, DIO_TP4_MASK_CH2,
32990 DIO_TP4_LS_DISABLE, DIO_TP4_HS_DISABLE, DIO_TP4_TIMING_RANGE2,
32991 DIO_TP4_PWM);
32992
32993 /* Terminate for S-Function (rti_commonblock): '<S394>/S-Function1' incorporates:
32994 * SubSystem: '<S386>/Background_Task'
32995 */
32996 L4_MAB_Background_Task_Term();
32997
32998 /* End of Terminate for S-Function (rti_commonblock): '<S394>/S-Function1' */
32999
33000 /* Terminate for S-Function (rti_commonblock): '<S400>/S-Function1' incorporates:
33001 * SubSystem: '<S386>/Interrupt_Task'
33002 */
33003 L4_MABX_Interrupt_Task_Term();
33004
33005 /* End of Terminate for S-Function (rti_commonblock): '<S400>/S-Function1' */
33006
33007 /* Terminate for S-Function (rti_commonblock): '<S446>/S-Function1' */
33008
33009 /* dSPACE RTICAN STD Srvc-Message Block */
33010 {
33011 /* ... Set the message into sleep mode */
33012 while ((rtican_type1_tq_error[0][0] = can_tp1_msg_sleep
33013 (CANTP1_RX_SPMSG_M1_C1_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33014 }
33015
33016 /* dSPACE RTICAN XTD Srvc-Message Block */
33017 {
33018 /* ... Set the message into sleep mode */
33019 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
33020 (CANTP1_RX_SPMSG_M1_C1_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33021 }
33022
33023 /* Terminate for S-Function (rti_commonblock): '<S447>/S-Function1' */
33024
33025 /* dSPACE RTICAN STD Srvc-Message Block */
33026 {
33027 /* ... Set the message into sleep mode */
33028 while ((rtican_type1_tq_error[0][0] = can_tp1_msg_sleep
33029 (CANTP1_RX_SPMSG_M1_C2_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33030 }
33031
33032 /* dSPACE RTICAN XTD Srvc-Message Block */
33033 {
33034 /* ... Set the message into sleep mode */
33035 while ((rtican_type1_tq_error[0][1] = can_tp1_msg_sleep
33036 (CANTP1_RX_SPMSG_M1_C2_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33037 }
33038
33039 /* Terminate for S-Function (rti_commonblock): '<S448>/S-Function1' */
33040
33041 /* dSPACE RTICAN STD Srvc-Message Block */
33042 {
33043 /* ... Set the message into sleep mode */
33044 while ((rtican_type1_tq_error[1][0] = can_tp1_msg_sleep
33045 (CANTP1_RX_SPMSG_M2_C1_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33046 }
33047
33048 /* dSPACE RTICAN XTD Srvc-Message Block */
33049 {
33050 /* ... Set the message into sleep mode */
33051 while ((rtican_type1_tq_error[1][1] = can_tp1_msg_sleep
33052 (CANTP1_RX_SPMSG_M2_C1_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33053 }
33054
33055 /* Terminate for S-Function (rti_commonblock): '<S449>/S-Function1' */
33056
33057 /* dSPACE RTICAN STD Srvc-Message Block */
33058 {
33059 /* ... Set the message into sleep mode */
33060 while ((rtican_type1_tq_error[1][0] = can_tp1_msg_sleep
33061 (CANTP1_RX_SPMSG_M2_C2_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33062 }
33063
33064 /* dSPACE RTICAN XTD Srvc-Message Block */
33065 {
33066 /* ... Set the message into sleep mode */
33067 while ((rtican_type1_tq_error[1][1] = can_tp1_msg_sleep
33068 (CANTP1_RX_SPMSG_M2_C2_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33069 }
33070
33071 /* Terminate for S-Function (rti_commonblock): '<S450>/S-Function1' */
33072
33073 /* dSPACE RTICAN STD Srvc-Message Block */
33074 {
33075 /* ... Set the message into sleep mode */
33076 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33077 (CANTP1_RX_SPMSG_M3_C1_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33078 }
33079
33080 /* dSPACE RTICAN XTD Srvc-Message Block */
33081 {
33082 /* ... Set the message into sleep mode */
33083 while ((rtican_type1_tq_error[2][1] = can_tp1_msg_sleep
33084 (CANTP1_RX_SPMSG_M3_C1_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33085 }
33086
33087 /* Terminate for S-Function (rti_commonblock): '<S451>/S-Function1' */
33088
33089 /* dSPACE RTICAN STD Srvc-Message Block */
33090 {
33091 /* ... Set the message into sleep mode */
33092 while ((rtican_type1_tq_error[2][0] = can_tp1_msg_sleep
33093 (CANTP1_RX_SPMSG_M3_C2_STD)) == DSMCOM_BUFFER_OVERFLOW) ;
33094 }
33095
33096 /* dSPACE RTICAN XTD Srvc-Message Block */
33097 {
33098 /* ... Set the message into sleep mode */
33099 while ((rtican_type1_tq_error[2][1] = can_tp1_msg_sleep
33100 (CANTP1_RX_SPMSG_M3_C2_XTD)) == DSMCOM_BUFFER_OVERFLOW) ;
33101 }
33102}
33103